【发布时间】:2020-04-24 04:17:09
【问题描述】:
我正在尝试了解以下操作中的内存分配:
x_batch,images_path,ImageValidStatus = tf_resize_images(path_list, img_type=col_mode, im_size=IMAGE_SIZE)
x_batch=x_batch/255;
x_batch = 1.0-x_batch
x_batch = x_batch.reshape(x_batch.shape[0],IMAGE_SIZE[0]*IMAGE_SIZE[1]*IMAGE_SIZE[2])
我感兴趣的是x_batch,这是一个多维numpy数组(100x64x64x3)
其中 100 是图像的数量,64x64x3 是图像的尺寸。
在某个时间点内存中图像的最大副本数是多少。
换句话说,从内存的角度来看,(x_batch/255)、(1-x_batch) 和 x_batch.reshape 的操作究竟是如何发生的。
我主要关心的是在某些情况下我试图同时处理 500K 图像,如果我将在内存中制作这些图像的多个副本,那么将很难将所有内容都放入内存中。
【问题讨论】:
-
肯定会出现内存错误。每个
=都会产生一个临时缓冲区——除了重塑。
标签: python numpy numpy-ndarray