- 记录一下第三次作业 语义分割的做题思路,遇到的问题,以及学到的新知识
- 作业是真的恶心,好恶心
- 5.29日,熬夜,熬到四点,早上八点起来继续肝·····
- 最终训练集0.87,验证集0.83
1:验证集的结果
- 本地验证集上的MIOU
- 0.8356
2:测试集上的结果
3:自己所采用的的方法
-
pspnet + resnet50
-
我从上周的时候就开始看物体分割的相关模型以及历史,知道了有基于上采样的,也有最终选择了基于特征增强的PSPNet,最终遇到了包括但不限于以下的问题
-
PSP网络的理解,以及参数的选取
- 最主要的是self.colors,也就是灰度图和索引图之间的对应关系
- 迁移学习的使用,resNet50,看哔哩哔哩Up主的视频,以及写代码(十个小时)
- Github 和知乎,搜索相关的代码,知识(十个小时)
- 最开始的时候,自己擅自改掉了self.colors,颜色就变花了,就像打翻了墨盒一样(这个点可能花的有12个小时的时间,就一直琢磨,琢磨)
- 开始得到的就是水墨画
- 然后研究灰度图和索引图,有五个小时
- 总计可能有五十个小时吧
-
花的时间真的长,一个epoch需要三分钟,训练一百个epoch,差不多就是三百分钟,五个小时就过去了。在kaggle平台上面,两个账号,GPU每周三十个小时。刚好他周六更新时长,所以我们相当于有120个小时的使用时间。算上开始探索的时间,长长短短加起来可能有一百的小时跑模型。
-
kaggle下载得到的结果文件,这次需要得到一千张图片,他运行完了刷新一下就没了,而且也不能批量下载。最后找到了可以通过ZIP代码压缩,之后直接下载。
-
一些技术上的问题
- AttributeError: ‘NDArray’ object has no attribute ‘convert’
- Image.fromarray(arr, ‘RGB’)
- NDaRRAY 和 Nparray
4:图片
-
所使用的的kaggle 环境
-
开始很绝望的时候 1.92
- 训练过程中
- 最终我改正了错误,把batch_size = 8,并且搞懂了灰度图和索引图的转换关系之后
- 每一个类别上的MIOU 我也打印出来了,可以看到都是在0.8以上,除了两个比较拉跨的类别在0.7
- 最后 这个是验证集上的,左边是我们给出的,右边是实际结果
- 这个是测试集上的,上面是原图,下面是我们预测出的图像
- 最后我们提交的是灰度图,大概是这个样子