Для Conv2d, Как вы можете заметить, выходная форма (Нет, 10, 10, 64). Первое измерение представляет размер пакета, который на данный момент равен None. Потому что сеть не знает размер пакета заранее. После подбора данных значение None будет заменено на размер пакета, который вы задали при подгонке данных.
Input shape
4D tensor with shape: (batch, channels, rows, cols) if data_format is "channels_first"
or 4D tensor with shape: (batch, rows, cols, channels) if data_format is
"channels_last".
Output shape
4D tensor with shape: (batch, filters, new_rows, new_cols) if data_format is
"channels_first" or 4D tensor with shape: (batch, new_rows, new_cols, filters) if
data_format is "channels_last". rows and cols values might have changed due to
padding.
Для слоев maxpool2d значения такие же, как указано выше для небольшое изменение следующим образом.
**Input**
If data_format='channels_last': 4D tensor with shape: (batch_size, rows, cols, channels)
If data_format='channels_first': 4D tensor with shape: (batch_size, channels, rows, cols)
**Output**
If data_format='channels_last': 4D tensor with shape: (batch_size, pooled_rows, pooled_cols, channels)
If data_format='channels_first': 4D tensor with shape: (batch_size, channels, pooled_rows, pooled_cols)
Теперь мы можем просто добавить слой свертки вверху другого слоя свертки, поскольку выходной размер свертки совпадает с его входным измерением. Обычно мы добавляем плотные слои в верхней части слоя свертки, чтобы классифицировать изображения. Тем не менее, ввод данных в плотный слой 2D-массив формы (batch_size, единиц). И вывод сверточного слоя представляет собой массив 4D. Таким образом, мы должны изменить размер выходного сигнала, полученного от слоя свертки, на двумерный массив.
Мы можем сделать это, вставив слой Flatten поверх слоя Convolution. Выровняйте слой squa sh 3 измерения изображения в одном измерении. Теперь у нас есть только двумерный массив формы (batch_size, squashed_size),
, который приемлем для плотных слоев.
Надеюсь, это поможет вам.