tensorflow - 使用 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),这是我认为我应该提供给模型的大小,但我对它为什么抱怨感到困惑。
解决方案
您应该为模型提供的内容应该具有分别为图像中的高度、宽度和通道数的(batch_size, h, w, c)
形状h, w, c
。问题可能是 cv2 找不到图像,在这种情况下它不会通过错误它只会返回 none 导致你在这里得到的形状(80, 1)
。您可以在 for 循环中添加一个检查无值作为开始,并尝试为您的图像获取正确的路径
推荐阅读
- c# - 在 SQL Server 中将记录的状态设置为 false 之前检查记录的子记录
- windbg - WinDbg TTD:从该记录会话中未识别出任何跟踪文件
- ios - Custom right segue in swift
- javascript - 来自 JSON 的动态嵌套 HTML 表:获取行跨度
- google-chrome - Chrome 68 播放器行为
- oracle - 将 ojdbc7_g 添加到 Grails3.3.8
- php - 为什么我在一小时后得到 403 Forbidden (Laravel)
- php - conditional doing both the if and else statement
- macos-high-sierra - NSAlert 键盘事件传播
- r - create a coefficient matrix based on a formula using elements of a data frame in R