Nag*_*S N 5 python numpy numpy-memmap pytorch pytorch-dataloader
我正在图像数据库上训练神经网络。我的图像具有全高清 (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]
Run Code Online (Sandbox Code Playgroud)
由于在每个 epoch 中都会加载相同的图像,因此最初在每个 epoch 中加载所有 memmap 是否会更好,只需调用上面的第二行来获取裁剪后的图像?
PS:我已经尝试了这两种方法,但我并没有真正发现它们之间有很大的区别。我的直觉表明在__init__
函数中加载所有内存映射应该比在每个时期一次又一次加载内存映射更好,但事实并非如此。如果你能解释为什么会发生这种情况,那也会对我有帮助。
尽管两种方法对我来说效果相似,但我问这个问题的原因是,我想知道未来的最佳实践是什么。
归档时间: |
|
查看次数: |
256 次 |
最近记录: |