【问题标题】:Converting a list to np array将列表转换为 np 数组
【发布时间】: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.ndarrayshape 作为第一个参数。这就是错误的原因。阅读here
  • 另外你想从错误的行中实现什么?

标签: python numpy opencv numpy-ndarray


【解决方案1】:

您的 ndarray 数组的形状为 (105392,100,100) 以展平该数组。

flatten_array = ndarray.reshape(1,105392*100*100)

【讨论】:

    猜你喜欢
    • 2018-08-28
    • 2022-08-03
    • 1970-01-01
    • 1970-01-01
    • 2021-11-23
    • 1970-01-01
    • 1970-01-01
    • 2021-04-22
    • 1970-01-01
    相关资源
    最近更新 更多