【发布时间】:2019-04-14 11:28:06
【问题描述】:
我是医学成像专业的学生。我必须构建一个用于图像分割的神经网络。我有一个包含 285 个主题的数据集,每个主题都有 4 种模态(T1、T2、T1ce、FLAIR)+ 它们各自的分割基础事实。一切都是 3D 的,分辨率为 240x240x155 体素(这是 BraTS 数据集)。
众所周知,由于内存原因,我无法在 GPU 上输入整个图像。我必须预处理图像并将它们分解为 3D 重叠补丁(40x40x40 的子体积),我使用scikit-image view_as_windows 执行此操作,然后在 TFRecords 文件中序列化窗口。由于每个补丁在每个方向上重叠了 10 个体素,因此这些总和为每个体积 5,292 个补丁。问题是,只有一种模式,每个 TFRecords 文件的大小为 800 GB。另外,我必须计算它们各自的分割权重图并将其存储为补丁。分段也作为补丁存储在同一文件中。
我最终必须包括所有其他模式,这将占用不低于 TB 的存储空间。我还必须记住,我还必须在背景和前景之间采样等量的补丁(类平衡)。
所以,我想我必须在每个训练步骤之前即时执行所有预处理步骤(同时希望不要减慢训练速度)。我无法使用tf.data.Dataset.from_tensors(),因为我无法将所有内容加载到 RAM 中。我不能使用tf.data.Dataset.from_tfrecords(),因为之前预处理整个东西会占用大量存储空间,而且我最终会用完。
问题是:在训练图像推理后重新加载模型的可能性是什么?
非常感谢您,如有其他详细信息,请随时询问。
皮埃尔-吕克
【问题讨论】:
标签: python tensorflow