首页 > 解决方案 > 使用 TensorFlow Keras 拟合数据的问题

问题描述

我正在尝试创建一个用于解密手写文本的模型。我现在遇到的问题是将我的数据提供给模型。

我从一个文件名列表开始,每个文件都作为图片。我也有每个标签的列表。

然后我遍历文件名并加载这些图像。

for i in range(len(images)):
    print(len(images) - i)
    images[i] = np.array(cv2.imread(images[i]))

然后我编译模型。并将列表提供给它。

self.model.fit(np.array(imgs), np.array(labels), epochs=10, validation_data=(np.array(test_images), np.array(test_labels)), callbacks=[checkpoint])

我收到此错误:

ValueError: Error when checking input: expected conv2d_1_input to have 4 dimensions, but got array with shape (80, 1)

我的 np 图像数组的大小为 (80, 1),这是我认为我应该提供给模型的大小,但我对它为什么抱怨感到困惑。

标签: tensorflowkerasneural-network

解决方案


您应该为模型提供的内容应该具有分别为图像中的高度、宽度和通道数的(batch_size, h, w, c) 形状h, w, c。问题可能是 cv2 找不到图像,在这种情况下它不会通过错误它只会返回 none 导致你在这里得到的形状(80, 1)。您可以在 for 循环中添加一个检查无值作为开始,并尝试为您的图像获取正确的路径


推荐阅读