【发布时间】:2018-11-19 13:14:18
【问题描述】:
我有一个文件夹火车,其中有 13000 张动物图像。我想使用深度神经网络来训练它们。但是图像的大小不同,所以我运行以下代码来获取一个 numpy 数组 X 。
for i in range(m):
my_image = "Img-"+str(i+1)+".jpg"
fname = "train/train/"+my_image
image = plt.imread(fname)
X[i] = scipy.misc.imresize(image, size=(num_px,num_px)).reshape((1, num_px*num_px*3))
这适用于 m 到 1000 的值。但是当 m=13000 时,我的训练集的大小,它会给出以下错误
ValueError Traceback (most recent call last)
<ipython-input-41-c214b5b43e33> in <module>()
3 fname = "train/train/"+my_image
4 image = plt.imread(fname)
----> 5 X[i] = scipy.misc.imresize(image, size=(num_px,num_px)).reshape((1, num_px*num_px*3))
ValueError: cannot reshape array of size 40000 into shape (1,120000)
这里的 imresize() 是将图像调整为所需大小。我的 num_px 值为 256。 任何帮助都会非常感激
【问题讨论】:
-
这是否意味着图像 1..1000 还可以,但是在 1001..13000 之间的某个位置至少有一个图像无法调整大小?我建议将
imresize行包含在try..except块中,并在except子句中打印出i。然后在交互式外壳中戳那个 JPEG 文件,看看有什么问题。
标签: python numpy image-processing scipy