KERAS的model.summary中"None"的含义是什么?

jun*_*min 14 machine-learning keras tensorflow

在此输入图像描述

输出形状中(无,100)的含义是什么?这是("无")样品编号还是隐藏尺寸?

Dan*_*ler 20

None 意味着这个维度是可变的.

keras模型中的第一个维度始终是批量大小.除非在非常特殊的情况下(例如,使用stateful=TrueLSTM图层时),否则不需要固定的批量大小.

这就是定义模型时经常忽略此维度的原因.例如,当您定义时input_shape=(100,200),实际上您忽略了批量大小并定义了"每个样本"的形状.在内部,形状将(None, 100, 200)允许可变的批量大小,批次中的每个样品具有形状(100,200).

然后,批次大小将在fitpredict方法中自动定义.


其他None尺寸:

不仅批量维度可以None,还有许多其他维度.

例如,在预期输入的2D卷积网络中(batchSize, height, width, channels),您可以使用(None, None, None, 3)允许可变图像大小的形状.

在循环网络和1D卷积中,您还可以length/timesteps使用类似的形状来创建维度变量(None, None, featuresOrChannels)


pro*_*sti 8

是的,None总而言之意味着批次(小批量)的动态维度。这就是为什么您可以为模型设置任何批量大小。

summary()方法是 TF 的一部分,融合了 Keras 方法print_summary()