简单CNN二值分类网络,数据集由100000多个图像文件组成



我试图建立一个简单的CNN模型用于二进制分类,但训练数据集包含超过100k的'.png'文件。如果我通过一次加载所有数据来训练模型,它将创建MemoryExhaustion Error。有人能帮我建立网络来处理如此庞大的数据集吗?

可以使用yield语句进行流处理

def load_at_once(image_names):
return [load(image_name) for image_name in image_names] # memory exhaust
def load_stream(image_names):
for image_name in image_names:
yield load(image_name)

可以使用for语句迭代图像。load_stream函数将逐个加载图像,如果您不尝试将所有图像保存在内存中,则可以防止内存耗尽。

当然,当你多次使用图像时,流式传输比将所有内容加载到内存中要慢,因为每次你想使用图像时它都会读取图像。

最新更新