面向医学领域的深度学习实战-医学图像处理实战-基于U-Net的图像分割+基于Resnet网络的细胞分类实战教程代码运行过程中出现的问题以及如何进行修正。
首先将unet++文件夹在pycharm中打开,并使用pytorch环境对train.py进行运行。出现了如下问题。
主要出现问题的代码块是在数据增强部分。
#数据增强:
train_transform = Compose([
transforms.RandomRotate90(),
transforms.Flip(),
OneOf([
transforms.HueSaturationValue(),
transforms.RandomBrightness(),
transforms.RandomContrast(),
], p=1),#按照归一化的概率选择执行哪一个
transforms.Resize(config['input_h'], config['input_w']),
transforms.Normalize(),
])
val_transform = Compose([
transforms.Resize(config['input_h'], config['input_w']),
transforms.Normalize(),
])
AttributeError: module 'albumentations.augmentations.transforms' has no attribute 'RandomRotate90'
错误表明在使用的 albumentations
版本中没有 RandomRotate90
这个变换。
解决办法如下:
-
检查版本:
确保使用的是最新版本的albumentations
。可以通过以下命令查看当前版本:pip show albumentations
-
如果不是最新版本,可以通过以下命令更新:
pip install --upgrade albumentations
- 使用替代变换 如果
RandomRotate90
不再可用,建议使用A.Rotate
作为替代。A.Rotate
可以实现类似的功能。修正后数据增强的代码如下所示:
代码成功运行。train_transform = A.Compose([ # transforms.RandomRotate90(), A.Rotate(limit=90, p=0.5), # 随机旋转 0 到 90 度 A.HorizontalFlip(p=0.5), # 随机水平翻转 A.VerticalFlip(p=0.5), # 随机垂直翻转 A.OneOf([ A.HueSaturationValue(p=1), # 随机调整色相、饱和度和亮度 A.RandomBrightnessContrast(p=1), # 随机调整亮度和对比度 ], p=1), A.Resize(config['input_h'], config['input_w']), A.Normalize(mean=(0.5, 0.5, 0.5), std=(0.5, 0.5, 0.5)), ]) val_transform = A.Compose([ A.Resize(config['input_h'], config['input_w']), A.Normalize(mean=(0.5, 0.5, 0.5), std=(0.5, 0.5, 0.5)), ])