首页 文章

Keras:指定输入张量的尺寸的顺序

提问于
浏览
0

考虑keras中的输入层:

model.add(layers.Dense(32, input_shape=(784,)))

这就是输入的是2D张量,其中未指定axix = 0(批量维度),而轴= 1是784.轴= 0可以取任何值 .

我的问题是: isnt this style confusing?

理想情况下,它应该不是

input_shape=(?,784)

这反映了axis = 0是通配符,而axis = 1应该是784

Any particular reason why it is so ? Am I missing something here ?

1 回答

  • 0

    在这种情况下的一致性是在层的大小和输入的大小之间 . 通常,假设形状代表数据的性质;从这个意义上讲,批量维度不是数据本身的一部分,而是如何将其分组以进行培训或评估 . 因此,在您的代码片段中,很明显您拥有784个功能的输入和第一个产生32个功能的矢量图层 . 如果要明确包含批次维度,则可以使用 batch_input_shape=(None, 784) (这有时是必要的,例如,如果要提供固定大小的批次但具有未知大小的额外时间维度) . 这在Sequential model guide中进行了解释,但也与Input图层的文档相匹配,您可以在其中提供 shapebatch_shape 参数(类似于 input_shapebatch_input_shape ) .

相关问题