答案 0 :(得分:13)
None
表示此维度是可变的。
keras模型中的第一个维度始终是批量大小。除非在非常特殊的情况下(例如,使用stateful=True
LSTM图层时),否则不需要固定的批量大小。
这就是定义模型时经常忽略此维度的原因。例如,当您定义input_shape=(100,200)
时,实际上您忽略了批量大小并定义了“每个样本”的形状。在内部,形状为(None, 100, 200)
,允许批量大小变化,批次中的每个样本的形状为(100,200)
。
然后,将在fit
或predict
方法中自动定义批量大小。
其他None
尺寸:
不仅批量维度可以是None
,还有许多其他维度。
例如,在2D卷积网络中,预期输入为(batchSize, height, width, channels)
,您可以使用(None, None, None, 3)
等形状,允许可变图像大小。
在循环网络和1D卷积中,您还可以使用length/timesteps
(None, None, featuresOrChannels)
维变量
答案 1 :(得分:0)
是的,None
概括来说是指批次(小型批次)的动态尺寸。
这就是为什么您可以为模型设置任何批量大小的原因。
summary()
方法是TF的一部分,它结合了Keras方法print_summary()
。