1. GPU利用率很低,训练过程很慢
- io卡住了,数据导入到内存速度太慢
- 模型太小
- 模型中存在耗时的步骤(比如本次项目中的otsu_method,需要遍历像素值寻找最大方差)
解决方法:
- 加大workers
- 设置timer,看一下具体哪一步比较慢(是数据处理/还是model部分,forward/backward)
- 针对上述第三个问题,解决方案是用矩阵优化,是计算并行化
2. Label Smoothing Regularization(LSR) 标签平滑
- 引入原因:一般情况下,在分类问题中label采用one-hot vector(如三分类中第2类,[0, 1, 0])
- 适用条件:数据不充足,小部分数据标注有误
-
原理:
相当于在ground truth的分布中加入了随机噪声,为了便于计算,噪声服从均匀分布
e.g.
三分类问题,当e = 0.1:
[0, 0, 1] --> [0, 0, 1]*(1-0.1) + 0.1/3 = [0.033, 0.033, 0.933]
代码实现:
def label_smoothing(labels, e=0):
3. Resize
训练时把图像的短边随机resize256-480,test的时候扩张图片尺寸(224->288, 299->363)----待试验
网友评论