【发布时间】:2021-11-24 18:08:03
【问题描述】:
在这被标记为重复之前,我已经尝试了所有类似的问题,但其中大部分都没有解决,如果他们有答案,它不适用于我的问题。原始代码有10多个样本。
输入:模型输入 np.arrays 的列表。 sample_train_emb1 的长度 = 2
问题:model.fit() 错误ValueError: Error when checking input: expected keras_layer_input to have 4 dimensions, but got array with shape (10, 1)
model.fit() 看起来像这样:
model.fit(
sample_train_emb1,
sample_y_train,
validation_data=(sample_valid_emb1, sample_y_valid),
epochs=epoch,
batch_size=batch_size,
verbose=1,
)
谢谢!如果您需要更多详细信息来帮助我解决此问题,请告诉我。它有许多类似的帖子仍未解决,所以我认为它会对将来可能面临同样问题的任何人有所帮助。
到目前为止我已经尝试过:
- 交换两个功能。
- 将图像特征转换为 `TensorShape([Dimension(1),
Dimension(224), Dimension(224), Dimension(3)]) 基于similar question's answer
【问题讨论】:
-
您似乎需要将 sample_train_emb1[0] 与 sample_train_emb1[1] 交换...您的图像也没有正确格式化,因为它们必须是 4d 数组
-
@MarcoCerliani 我已经尝试过交换它们。还是同样的错误。我还尝试基于此similar question's answer 使用
tf.reshape(x,[-1, 224, 224, 3]将图像格式化为TensorShape([Dimension(1), Dimension(224), Dimension(224), Dimension(3)]),但仍然出现相同的错误。
标签: numpy keras deep-learning conv-neural-network keras-layer