【发布时间】:2020-10-18 04:40:17
【问题描述】:
我正在构建一个图像分类模型,但首先我需要读取用于训练的图像,并且我有 105,392 张图像,因此我读取了使用 cv2.imread_grayscale 下载的本地图像并将图像大小调整为 100x100
train_images = []
img_array = cv2.imread(os.path.join(path,str(train_data.filename[idx])), cv2.IMREAD_GRAYSCALE)
new_array = cv2.resize(img_array,(img_size,img_size))
train_images.append(new_array)
然后我将图像数据添加到列表中,然后将它们转换为 nparray 并尝试将它们展平为一维,以便我可以保存到文本文件中以便于处理
ndarray = np.array(train_images)
ndarray2 = np.ndarray(ndarray)
flattenarray = ndarray2.flatten(order='C')
flattenarray.tofile('train_images_bitmap.txt')
但我得到了这个错误
Traceback (most recent call last):
File "comp2.py", line 36, in <module>
ndarray2 = np.ndarray(ndarray)
ValueError: maximum supported dimension for an ndarray is 32, found 105392
感谢任何帮助!
【问题讨论】:
-
目前,每次我需要在训练模型中进行测试时,我都需要等待大约 10 分钟,我认为我可以将灰度调整后的图像数据导出到 txt 文件中,所以我只需要每当我运行训练模型时读取该文件
-
使用
np.array制作数组。np.ndarray是一个我们很少使用的低级构造函数,需要更加小心其输入。你查过ndarray文档吗? -
实际上是的,但我不明白他们,我在网上查了一下,看到有人用 ndarray 做了我需要的事情,只是我认为他们的尺寸要小得多,所以它很成功。但我无法让它工作,所以我来问
-
np.ndarray将shape作为第一个参数。这就是错误的原因。阅读here。 -
另外你想从错误的行中实现什么?
标签: python numpy opencv numpy-ndarray