В вашем случае, Conv2D
будет полезно. Пожалуйста, обратитесь к описанию ниже для понимания формы ввода Convolution Neural Network (CNN), используя Conv2D
.
Посмотрим, как выглядит форма ввода. Входные данные для CNN будут выглядеть следующим образом. Мы предполагаем, что наши данные представляют собой набор изображений.
Форма ввода имеет (batch_size, height, width, channels)
. В случае RGB
изображение будет иметь канал 3
, а изображение greyscale
будет иметь канал 1
.
Давайте рассмотрим следующий код
import tensorflow as tf
from tensorflow.keras.layers import Conv2D
model=tf.keras.models.Sequential()
model.add(Conv2D(filters=64, kernel_size=1, input_shape=(10,10,3)))
model.summary()
Вывод:
Model: "sequential"
_________________________________________________________________
Layer (type) Output Shape Param #
=================================================================
conv2d (Conv2D) (None, 10, 10, 64) 256
=================================================================
Хотя это выглядит так, как если бы входная форма была 3D
, но вы должны передать массив 4D
во время подгонки данных, которые должны быть как (batch_size, 10, 10, 3)
. Поскольку в аргументе input_shape нет значения размера пакета, мы можем go с любым размером пакета при подборе данных.
Выходная форма равна (None, 10, 10, 64)
. Первое измерение представляет размер партии, который на данный момент составляет None
. Потому что сеть не знает размер пакета заранее.
Note:
После того, как вы подгоните данные, None
будет заменен размером пакета, который вы задаете при подгонке данных.
Давайте рассмотрим другой код с пакетом Размер
import tensorflow as tf
from tensorflow.keras.layers import Conv2D
model=tf.keras.models.Sequential()
model.add(Conv2D(filters=64, kernel_size=1, batch_input_shape=(16,10,10,3)))
model.summary()
Вывод:
Model: "sequential_1"
_________________________________________________________________
Layer (type) Output Shape Param #
=================================================================
conv2d_1 (Conv2D) (16, 10, 10, 64) 256
=================================================================
Здесь я заменил аргумент input_shape
на batch_input_shape
. Как следует из названия, этот аргумент будет запрашивать размер пакета заранее, и вы не сможете указать какой-либо другой размер пакета во время подбора данных.