TensorFlow keras模型中的“无”是什么意思?

时间:2020-03-17 12:28:13

标签: tensorflow keras

我正在使用TensorFlow和Keras进行模式识别。

我的输入数据是32 * 32像素的二进制图像,输出是4类。

我创建了如下模型

model = models.Sequential()
model.add(layers.Conv2D(32, (3, 3), activation='relu', input_shape=(32, 32,1)))
model.add(layers.MaxPooling2D((2, 2)))
model.add(layers.Conv2D(64, (3, 3), activation='relu'))
model.add(layers.MaxPooling2D((2, 2)))
model.add(layers.Conv2D(64, (3, 3), activation='relu'))
model.add(layers.Flatten())
model.add(layers.Dense(32, activation='relu'))
model.add(layers.Dense(4))

但是当我尝试显示模型摘要时,我会得到

Model: "sequential"
_________________________________________________________________
Layer (type)                 Output Shape              Param #   
=================================================================
conv2d (Conv2D)              (None, 30, 30, 32)        320       
_________________________________________________________________
max_pooling2d (MaxPooling2D) (None, 15, 15, 32)        0         
_________________________________________________________________
conv2d_1 (Conv2D)            (None, 13, 13, 64)        18496     
_________________________________________________________________
max_pooling2d_1 (MaxPooling2 (None, 6, 6, 64)          0         
_________________________________________________________________
conv2d_2 (Conv2D)            (None, 4, 4, 64)          36928     
_________________________________________________________________
flatten (Flatten)            (None, 1024)              0         
_________________________________________________________________
dense (Dense)                (None, 32)                32800     
_________________________________________________________________
dense_1 (Dense)              (None, 4)                 132       
=================================================================

enter image description here

我的问题是“?”是什么意思? &图层尺寸为“无”

2 个答案:

答案 0 :(得分:2)

在您的情况下,只有在调用fit时才能知道批次大小,因此,在定义模型时,TF仍然不知道批次大小。

因此,

?None是批次大小的占位符。

答案 1 :(得分:2)

在Keras中,None维度表示它可以是任何标量数,因此您可以使用此模型来推断任意长的输入。此尺寸不会影响网络的大小,仅表示您可以在测试期间自由选择输入的长度(样本数量)。

卷积层中的元素按batchSize, height, width, channels

的顺序表示

?None是批量大小的占位符。