1、debug的方法,最原始的方法是逐步的将模型去掉一部分,然后再对比CPU和MLU的结果,看是从哪一层开始精度差异变得明显的。如果是逐步累计的,那看下输出的数值是否在某一层已经超出了FP16能表示的范围。2、即使裁剪后在GPU上训练过,在低精度(FP16)推理是也一样有可能出现精度飞掉的情况,因为一般通道越少,对精度的损失容忍度越低。展开
感谢您的回复:我们采用的是FP16精度的。2种可能性:1、触发了SDK的bug:请问这个怎么确定呢?怎么定位SDK的bug?2、通道裁剪导致FP16的精度损失扩散了:第二中情况的模型是在GPU上训练出来的,不是原始resnest50裁剪通道得到的。这种情况也会导致精度损失扩散吗?展开
1、debug的方法,最原始的方法是逐步的将模型去掉一部分,然后再对比CPU和MLU的结果,看是从哪一层开始精度差异变得明显的。如果是逐步累计的,那看下输出的数值是否在某一层已经超出了FP16能表示的范围。
2、即使裁剪后在GPU上训练过,在低精度(FP16)推理是也一样有可能出现精度飞掉的情况,因为一般通道越少,对精度的损失容忍度越低。
请登录后评论