如何在大图像上训练TensorFlow? (4288x2848)

问题描述 投票:0回答:1

我想在大图像(4288x2848 像素)上训练我的 TensorFlow 模型,但它只是将所有图像加载到我的 vRAM 中,而我没有足够的 vRAM(我的 GPU 上只有 8GB - 我将 TensorFlow 用于 GPU,所以它不不使用普通 RAM)。有什么办法可以使用这些高分辨率图像吗?就像逐渐加载它们并在纪元完成后逐渐从 vRAM 中删除它们一样?

已经尝试过像我的 GPU 上的 memory_growth 这样的东西

physical_devices = tf.config.list_physical_devices('GPU')
if len(physical_devices) > 0:
   tf.config.experimental.set_memory_growth(physical_devices[0], True)

和混合浮子16

mixed_precision.set_global_policy('mixed_float16')

它有效,我能够将分辨率提高到 750*1500(或像这样的 smt,我不确定)

tensorflow keras memory-management artificial-intelligence tensorflow-datasets
1个回答
0
投票

使用 keras ImageDataGenerator。文档位于 here。 生成器将数据分成批次。用户设置批次大小(批次中的图像数量) 批次按顺序运行。用于数据的内存与批量大小成正比。例如,假设您有 500 张图像。对于生成器,如果将批量大小设置为 25,则对于一个时期,将提供 20 个连续批次的数据进行训练。使用的内存与 25 张图像的大小与 500 张图像的数据集的完整大小成正比

© www.soinside.com 2019 - 2024. All rights reserved.