【问题标题】:Keras : order in which dimensions of an input tensor is specifiedKeras:指定输入张量维度的顺序
【发布时间】:2018-03-12 20:35:06
【问题描述】:

将 keras 中的输入层视为:

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

这里所说的输入是一个二维张量,其中未指定 axix=0(批量维度),而 axis=1 为 784。axis=0 可以采用任何值。

我的问题是:这种风格是不是很混乱?

理想情况下,应该不是

 input_shape=(?,784)

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

有什么特别的原因吗?我在这里错过了什么吗?

【问题讨论】:

    标签: keras keras-layer


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2017-12-18
      • 2020-03-09
      • 1970-01-01
      • 2016-03-08
      • 2019-07-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多