零基础入门语义分割-地表建筑物识别参赛记录(一)
赛题描述本质其实就是基本的语义分割问题。基本目的熟悉比赛流程;以前就知道mask rcnn, 这次主要是为了更进一步了解语义分割;后续会熟悉一下阿里的DSW,不会白嫖的参赛者不是好码农;提升一下技能点,增加提分要点秘诀和代码实践能力;基本元素baseline参照阿水大佬提供的FCN改动版本:使用pytorch官方的语义分割模型fcn_resnet50,并且修改最后的classifier,添加自定义
赛题描述
本质其实就是基本的语义分割问题。
基本目的
熟悉比赛流程;
以前就知道mask rcnn, 这次主要是为了更进一步了解语义分割;
后续会熟悉一下阿里的DSW,不会白嫖的参赛者不是好码农;
提升一下技能点,增加提分要点秘诀和代码实践能力;
基本元素
- baseline参照阿水大佬提供的FCN改动版本:
使用pytorch官方的语义分割模型fcn_resnet50
,并且修改最后的classifier
,添加自定义的loss函数
.感觉改的还是挺精妙的。而且添加了tqdm,让训练过程有了一个逐步完成的过程,要比print数据更有意思。
- 数据下载
FileName | Size | Link |
---|---|---|
test_a.zip | 314.49MB | http://tianchi-competition.oss-cn-hangzhou.aliyuncs.com/531872/%E5%9C%B0%E8%A1%A8%E5%BB%BA%E7%AD%91%E7%89%A9%E8%AF%86%E5%88%AB/test_a.zip |
test_a_samplesubmit.csv | 46.39KB | http://tianchi-competition.oss-cn-hangzhou.aliyuncs.com/531872/%E5%9C%B0%E8%A1%A8%E5%BB%BA%E7%AD%91%E7%89%A9%E8%AF%86%E5%88%AB/test_a_samplesubmit.csv |
train.zip | 3.68GB | http://tianchi-competition.oss-cn-hangzhou.aliyuncs.com/531872/%E5%9C%B0%E8%A1%A8%E5%BB%BA%E7%AD%91%E7%89%A9%E8%AF%86%E5%88%AB/train.zip |
train_mask.csv.zip | 97.52MB | http://tianchi-competition.oss-cn-hangzhou.aliyuncs.com/531872/%E5%9C%B0%E8%A1%A8%E5%BB%BA%E7%AD%91%E7%89%A9%E8%AF%86%E5%88%AB/train_mask.csv.zip |
- 预训练模型与安装包
(1)预训练模型下载的是fcn_resnet50
,参见 下载链接
model_urls = {
'fcn_resnet50_coco': 'https://download.pytorch.org/models/fcn_resnet50_coco-1167a1af.pth',
'fcn_resnet101_coco': 'https://download.pytorch.org/models/fcn_resnet101_coco-7ecb50ca.pth'
}
手动下载后,放到 C:\Users\xxx_username\.cache\torch\hub\checkpoints
即可
(2)主要是数据增强模块 albumentations
等,这个后面要好好看一下
运行过程
主要是距离打卡deadline大概只有4个小时时间,所以主要是在本地构建,上传csv。
- nvidia-gtx1060 ,
- 12g内存,
- win10
- pytorch 1.6 python3.6
(1)根据我对于pytorch模型的了解,其实输入任意尺寸的图片都是可以正常处理的。因为在输出的时候有做AdaptiveMaxPool2d
,所以最终的尺寸一定会在fc layer
之前匹配到最后的输出的feature map
的尺寸要求。这个也是pytorch模型没有像keras那样要求input shape是个固定值的原因。当然最好是在dataload的时候固定尺寸大小,而且这个大小最好能和模型的标准尺寸对应。因为后续要做T.Normalize
,这个值大概率是通过kmeans统计出来的,以便于加速同一批次固定尺寸图片快速收敛。
(2)考虑到图片过大,在cpu上的占用资源过大,我选择将img size = 128, batchsize=8,。
训练一次大致是25分钟,选择epoch=5,大致是训练2个半小时。
(3)在jupyter notebook上训练,但是出现一些问题并解决:
“ImportError: FloatProgress not found. Please update
jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.html”这是因为jupyter或者ipywidgets没安装或者没关联造成
解决方案:
1,卸载jupyter:pip uninstall jupyter
2,安装jupyter:pip install jupyter
3,安装ipywidgets:pip install ipywidgets
4,关联:jupyter nbextension enable --py widgetsnbextension
运行结果
后续提升
REF

GitCode 天启AI是一款由 GitCode 团队打造的智能助手,基于先进的LLM(大语言模型)与多智能体 Agent 技术构建,致力于为用户提供高效、智能、多模态的创作与开发支持。它不仅支持自然语言对话,还具备处理文件、生成 PPT、撰写分析报告、开发 Web 应用等多项能力,真正做到“一句话,让 Al帮你完成复杂任务”。
更多推荐
所有评论(0)