我在TF / Keras中有一个基于U-Net的分割算法,该算法经过训练,可以对3D图像体积(存储为numpy数组)进行2D分割。除了切片编号(例如512x512x50、512x512x200、512,512,12)以外,我的3D图像体积均相同。目前,该算法正在加载所有3D阵列,进行级联,然后在训练期间从巨型512x512xn(总切片数)阵列中批量加载512x512图像...但这会占用过多的内存。
我想使用ImageDataGenerator
的{{1}}或flow_from_directory
之类的东西在训练过程中按需加载数组,而不是一次加载所有数组,但是我不确定如何这样做我正在处理3D卷,而不是包含2D图像的目录。 flow_from_dataframe
是否提供一种类型的批量加载,我可以在其中从具有3D卷的目录批量加载2D切片?
一种低效的解决方法是打开我的所有3D阵列并将其重新保存为单个切片。.但我宁愿避免这种情况。否则,我想我可以构造一个自定义生成器,该生成器使用ImageDataGenerator
一次加载一个切片?
任何输入将不胜感激,谢谢