【问题标题】:ValueError: Shapes (None, 1) and (None, 90) are incompatibleValueError:形状 (None, 1) 和 (None, 90) 不兼容
【发布时间】:2021-01-12 11:32:37
【问题描述】:

我想在我的 x_train 和我的 y_train 中构建一个 deep RNN。当我执行下面的代码时:

print(X_train_fea.shape, y_train_fea.shape)
X_train_res = np.reshape(X_train_fea,(10510,10,1))
y_train_res = np.reshape(y_train_fea.to_numpy(),(-1,1))
print(X_train_res.shape, y_train_res.shape)

结果:

(10510, 10) (10510,)
(10510, 10, 1) (10510, 1)

model = Sequential([
    LSTM(90, input_shape=(10,1)), 
])
model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])
model.summary()

当我拟合模型时

history = model.fit(X_train_res, y_train_res,epochs=5)

我明白了

ValueError: Shapes (None, 1) and (None, 90) are incompatible

【问题讨论】:

    标签: python-3.x tensorflow lstm


    【解决方案1】:

    看起来y_train_res 包含整数索引而不是单热向量。如果是这样,您必须使用sparse_categorical_crossentropy

    model.compile(optimizer='adam', loss='sparse_categorical_crossentropy')
    

    并将其形状更改为一维:

    y_train_res = np.reshape(y_train_fea.to_numpy(),(-1,))
    

    【讨论】:

      猜你喜欢
      • 2020-08-27
      • 2021-09-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-25
      • 2021-12-05
      • 1970-01-01
      • 2022-11-09
      相关资源
      最近更新 更多