【问题标题】:What is the difference between input_shape and input_dim in keras?keras中的input_shape和input_dim有什么区别?
【发布时间】:2020-06-04 20:59:09
【问题描述】:

目前我正在学习深度学习并偶然发现了这些困惑: 何时使用 input_shape 和 input_dim 参数。

我的数据的形状是 (798,9),它们有 8 个输入变量和 1 个输出变量,所以我的问题是在制作顺序模型时有什么区别:

model = tf.keras.Sequential()
model.add(tf.keras.layers.Dense(units=12,input_shape=(6912,),activation='relu' ))
model.add(tf.keras.layers.Dense(32,activation='relu'))

model = tf.keras.Sequential()
model.add(tf.keras.layers.Dense(units=12,input_dim=8,activation='relu' ))
model.add(tf.keras.layers.Dense(32,activation='relu'))

那么谁能详细解释一下如何选择 input_size 和 input_dim 以及它们之间的区别?

【问题讨论】:

  • 官方文档keras.io/getting-started/sequential-model-guide 中有很好的解释。将input_shape 参数传递给first layer。一些 2D 层,例如 Dense,通过参数 input_dim 支持其输入形状的规范。如果输入是一维数组,那么您可以只使用 input_dim 作为标量数,无需使用 shape。

标签: python-3.x keras neural-network tf.keras


【解决方案1】:

您需要input_shape = (8,),它与input_dim = 8 完全相同。

您的最终Dense 当然只需要1 个单元。对于回归,您可能需要在最后一层使用activation = 'linear',对于分类,您可能需要'sigmoid'

对于更高维度的数据,您需要input_shape = (dim_1, dim2, ...)

【讨论】:

  • 谢谢 我理解部分是因为在 mnist 数据中为什么我们将输入形状设为 784?我们可以写 28 而不是 784
  • 您可以(28,28),它是 3D 数据(当您考虑批量大小时)。但是您的模型必须相应地构建才能使用 3D 数据。 --- 那些(784,) 示例正在将数据扁平化以使用 FCN(全连接网络)。 --- CNN(卷积神经网络)将正确使用形状为(28,28) 的图像。
猜你喜欢
  • 1970-01-01
  • 2018-08-28
  • 2020-07-02
  • 1970-01-01
  • 2020-03-16
  • 1970-01-01
  • 1970-01-01
  • 2018-08-24
  • 2018-10-03
相关资源
最近更新 更多