参考
gluoncv
按照gluoncv的文档中pip install gluoncv方法安装,但是发现这个版本似乎依然有不少问题
准备数据
pascal_voc.py
这个脚本可以下载需要的四个文集,但是用迅雷下载的发现最后一个benchmark.tgz下载后的的hash码不对,另外三个是对的。
但是用wget下载速度有很慢,最后通过修改脚本,绕开了hash校验,这个脚本其实只做三间事情
- VOC2007和VOC2018,解压后的目录是VOCdev,把VOCdev/VOC2012和VOCdev/VOC2007从VOCdev中移动出来
- benchmark,解压后benchmark_RELEASE/, 直接重命名成VOCaug
- 生成一个链接 ~/.mxnet/dataset/voc 指向解压目录
最终~/.mxnet/dataset/voc包含三个子目录VOC2007, VOC2012和VOCaug
运行脚本
First training on augmented set
python train.py --dataset pascal_aug --model fcn --backbone resnet50 --lr 0.001 --checkname mycheckpoint
遇到问题
-
gluoncv.data.segbase.get_segmentation_dataset()报key error
crop_size/base_size 这两个参数删除,如下所示
-
crop_size/base_size: key error
data_kwargs = {'transform': input_transform, 'base_size': args.base_size, 'crop_size': args.crop_size}
修改成
data_kwargs = {'transform': input_transform}
- KeyError: ‘pascal_aug’
model = FCN(datasets[dataset].NUM_CLASS, backbone=backbone, ctx=ctx, **kwargs)
KeyError: 'pascal_aug'
解决方法:
gluoncv.model_zoo.fcn.py修改如下
from ..data.pascal_voc.segmentation import VOCSegmentation
from ..data.pascal_aug.segmentation import VOCAugSegmentation
acronyms = {
'pascal_voc': 'voc',
'pascal_aug': 'voc', #增加这一行
'ade20k': 'ade',
}
datasets = {
'pascal_voc': VOCSegmentation,
'pascal_aug': VOCAugSegmentation, #增加这一行
'ade20k': ADE20KSegmentation,
}
-
找不到MixSoftmaxCrossEntropyLoss()
直接从github上更新gluoncv/loss.py,似乎pip下载的这个文件是不完整的 -
找不到SegmentationMetrix()
从github下载segmentation.py复制到gluoncv/utils/metrics/中,并在gluoncv/utils/metrics/init.py中增加一句
from .segmentation import SegmentationMetric