【发布时间】:2021-05-11 21:45:44
【问题描述】:
我正在开发一个类似 U-net 的模型,该模型可以在多发性硬化症患者的两个时间点之间分割大脑受损组织。该模型的基线和后续图像为 x,分割掩码为 y。这些图像是 3D (192, 218, 192),模型输入大小是 (128, 128, 128),并且正在通过 dice loss 进行训练。模型基于这篇论文:https://www.sciencedirect.com/science/article/abs/pii/S0895611120300732
我目前正在做的是在训练之前对每张图像进行中心裁剪,训练骰子分数似乎学习得很好,但在验证数据中却不是。
我已经阅读了 10 次左右的随机裁剪有助于减少过度拟合,但我并不完全知道如何实现它。我写了这个函数来做随机裁剪:
def random_crop(img_bl, img_fu, mask, width=128, height=128, depth=128):
x = random.randint(0, img_bl.shape[1] - width)
y = random.randint(0, img_bl.shape[0] - height)
z = random.randint(0, img_bl.shape[2] - depth)
img_bl = img_bl[y:y + height, x:x + width, z:z + depth]
img_fu = img_fu[y:y + height, x:x + width, z:z + depth]
mask = mask[y:y + height, x:x + width, z:z + depth]
return img_bl, img_fu, mask
我是否只是在对每张图像进行训练之前应用此功能 10 次?或者有没有办法在模型中包含随机裁剪并重叠这 10 个子卷的预测?
【问题讨论】:
标签: python tensorflow deep-learning conv-neural-network data-augmentation