我选择了使用深度学习对脑肿瘤进行语义分割的问题。我正在使用 BRATS2015 数据集。它有 274 个患者 MRI 扫描,每个扫描大小为 240x240x155。每位患者有四种模式(T1、T2、T1c、FLAIR)。所以我将这些模式用作网络中的渠道。
在理想情况下,我的 3D UNet 网络的输入可以在 channels_last 模式下具有形状 (Batch_size, 240, 240, 155, 4)。但是显卡显然不具备处理这种大小的数据的能力。因此,我需要将我的 MRI 扫描转换为补丁。
这就是我感到困惑的地方。获取单通道 3D 数据的补丁相对容易。为此,我们有许多库和辅助函数。我面临的问题是为多模式数据生成补丁,即带有通道的 3D 数据。
- 我已经想到了为每个通道分别生成补丁并连接最终结果的想法,但我相信如果我单独处理它而不是直接为多模式数据生成补丁,我可能会丢失一些多通道信息。
我查看了patchify
我们可以使用以下内容生成补丁的库
from patchify import patchify, unpatchify
#This will split the image into small images of shape [3,3,3]
patches = patchify(image, (3, 3, 3), step=1)
reconstructed_image = unpatchify(patches, image.shape)
但我不确定如何生成多模式补丁。有没有办法用patchify
或任何其他库/帮助函数来做到这一点?