【问题标题】:Keras input shape errorKeras 输入形状错误
【发布时间】:2017-10-15 17:34:12
【问题描述】:

我是 Keras 的新手,我正在尝试创建需要在纸牌游戏中学习的网络。它需要 93 个二进制输入,其中包含 40 个神经元的隐藏层和一个计算分数(从 0 到 25)的输出神经元。

model = Sequential()
model.add(Dense(input_dim=93, units=40, activation="sigmoid"))
model.add(Dense(units=2, activation="linear"))
sgd = optimizers.SGD(lr=0.01, clipvalue=0.5)
model.compile(loss="mse", optimizer=sgd, learning_rate=0.01)

我首先尝试计算(进行前向传播)这 93 个输入

这是“s.toInputs()”

[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 1 0 1 1 0 1 1 1 1 0 1 1 1 1 0 1 1 1 1 0 1 0 0 1 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 1 0 0 0 0 1 0 1 0 0 0 0 0 1 1 0 0 1 1 0 0 1 0 0 0 0 1 1 0 1]

model.predict(np.array(s.toInputs())

但我得到了错误

ValueError: 检查时出错:预期 dense_1_input 具有形状 (None, 93) 但得到的数组具有形状 (93, 1)

如何传递正确的参数?

【问题讨论】:

    标签: python numpy tensorflow neural-network keras


    【解决方案1】:

    重塑的东西效果很好。 将数组重塑为 (batch_size, your_input_dimensions)

    np.reshape(batch_size, input_dimesions)

    【讨论】:

      【解决方案2】:

      其实s.toInputs()应该是这样的

      [[0,0,0, 等...],[0,1,0, 等...]]

      基本上你必须有一个具有以下形状的数组:(n_batches, n_attributes)

      你有 93 个属性,所以如果你使用 tensorflow,这应该可以解决问题

      np.array(s.toInputs()).reshape(-1, 93)
      

      完整的工作示例

      model = Sequential()
      model.add(Dense(input_dim=93, units=40, activation="sigmoid"))
      model.add(Dense(units=2, activation="linear"))
      sgd = optimizers.SGD(lr=0.01, clipvalue=0.5)
      model.compile(loss="mse", optimizer=sgd, learning_rate=0.01)
      
      # random data
      n_batches = 10
      data = np.random.randint(0,2,93*n_batches)
      data = data.reshape(-1,93)
      
      model.predict(data)
      

      【讨论】:

        【解决方案3】:

        错误信息告诉你,你的数据需要有(None, 93)的形状(None这里的意思是,这个维度可以是任意值。它是你的样本数)

        但是您的输入数据的形状为(93,1)。请注意,尺寸是相反的。 您可以使用转置来获得正确形状的数据:

        model.predict(np.array(s.toInputs()).T)
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2018-08-15
          • 1970-01-01
          • 2019-01-26
          • 2023-03-28
          • 1970-01-01
          • 2023-03-22
          • 2017-03-01
          • 2021-05-20
          相关资源
          最近更新 更多