5

我正在图像数据库上训练神经网络。我的图像是全高清 (1920 x 1080) 分辨率,但为了训练,我使用大小为 256x256 的随机裁剪。由于读取完整图像然后裁剪效率不高,我使用 numpy memmap 仅加载 256x256 裁剪图像。也就是说,我正在做类似下面的事情

image_mmap = numpy.load(npy_image_path.as_posix(), mmap_mode=mmap_mode)
cropped_image = image_mmap[y1:y2, x1:x2]

由于将在每个时期加载相同的图像,因此最好在初始和每个时期加载所有 memmap,只需调用上面的第二行来获取裁剪后的图像?

PS:这两种方法我都试过了,我还没有真正发现它们之间有很大的区别。我的直觉是,在函数中加载所有 memmap__init__应该比在每个 epoch 一次又一次地加载 memmap 更好,但事实并非如此。如果您能解释为什么会发生这种情况,那也会对我有所帮助。

我问这个问题的原因是,即使这两种方法对我来说都是相似的,我想知道未来的最佳实践是什么。

4

0 回答 0