我正在尝试使用 Keras 在 Python 中执行情绪分析。为此,我需要对文本进行词嵌入。当我尝试将数据拟合到我的模型时出现问题:
model_1 = Sequential()
model_1.add(Embedding(1000,32, input_length = X_train.shape[0]))
model_1.add(Flatten())
model_1.add(Dense(250, activation='relu'))
model_1.add(Dense(1, activation='sigmoid'))
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])
我的火车数据的形状是
(4834,)
并且是 Pandas 系列对象。当我尝试拟合我的模型并使用其他一些数据对其进行验证时,出现此错误:
model_1.fit(X_train, y_train, validation_data=(X_test, y_test), epochs=2, batch_size=64, verbose=2)
ValueError:检查模型输入时出错:预期 embedding_1_input 具有形状(无,4834)但得到具有形状的数组(4834、1)
如何重塑我的数据以使其适合 Keras?我一直在尝试使用 np.reshape 但我无法将 None 元素与该功能一起放置。
提前致谢
原文由 Gonzalo Donoso 发布,翻译遵循 CC BY-SA 4.0 许可协议
None
是进入训练的预期行数,因此您无法定义它。 Keras 还需要一个 numpy 数组作为输入,而不是 pandas 数据框。首先使用df.values
将 df 转换为 numpy 数组,然后执行np.reshape((-1, 4834))
。请注意,您应该使用np.float32
。如果您在 GPU 上训练它,这一点很重要。