Massachussets Road Dataset中的图像尺寸为(1500,1500,3)。其中image_height = image_width = 1500,而3表示 RGB 频道。
我使用 skimage.external.tifffile.imread 来读取图像,然后将它们存储在具有尺寸((number_of_images),1500,1500的 numpy 数组中, 3),这给了我一个内存错误。
对于解决方案,我查看了 PIL 模块,该模块有助于将图像重塑为更小的尺寸,但我想知道这是否会导致我丢失一些关键信息。
---------------------------------------------------------------------------
MemoryError Traceback (most recent call last)
<ipython-input-25-4133a180c798> in <module>()
200 if __name__ == '__main__':
201
--> 202 create_train_data()
203
204 create_test_data()
<ipython-input-25-4133a180c798> in create_train_data()
41
42
---> 43 imgs = np.ndarray((total, image_rows, image_cols,3), dtype=np.uint8)
44
45
MemoryError:
答案 0 :(得分:0)
1500 x 1500图像,由于这些是用于分类的彩色图像,尤其是如果你有很多图像,这肯定会让你的内存耗尽。
这里没有使用稀疏矩阵保存内存,因为数据很密集。您无法选择,只能调整图像大小。它还取决于图像的复杂程度。
如果图像纹理相当,则可以调整图像的大小。鉴于您所选择的数据集,我们当然可以逃脱这一点。 您还使用conv-neural-network标记了自己的帖子。这些全尺寸图像对于CNN,计算方面和参数方面肯定是不切实际的。就像我之前所说的那样,最好在训练之前(当然还有测试)调整图像大小。