shape=(None,) 或 (None,12) 的输入层实际上是什么意思?

数据挖掘 神经网络 喀拉斯 张量流
2021-10-09 09:10:12

这是否告诉模型有两个维度(即它是一个矩阵),但我们还不知道那个特定维度的大小?如果是这样,如何编译模型?每个维度的大小不会影响中间层的节点数吗?

2个回答

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

你几乎是对的。但是,在您的具体示例中(None,)(None,12)我们实际上确实知道模型输入的大小,这就是可以编译模型的原因。(None,)指标量输入,(None,12)指 12 维输入向量。因此,可以将其None视为模型优化算法批量大小的可调整变量/占位符。

一个更具体的例子:如果模型优化/训练期间的批量大小是 32,那么None将取一个值 32 并且您的模型的输入将是 size (32,12)