标签:loss 记录 代码 py pytorch 版本 ssd
ssd.pytorch 踩坑记录
由于实验室需求,从github上下载了一个基于pytorch的ssd代码,调试过程中出现了蛮多bug,记录一下,方便以后调试的时候继续参考。数据集为实验室制作的遥感图像数据集。
参考代码:https://github.com/amdegroot/ssd.pytorch
1. 训练时出现loss: nan
问题
检查发现,loss_l为nan,寻找错误半天,找到原来是数据集ground truth中,标签格式并非是「xmin,ymin,xmax,ymax]而是,「x1,y1,x2,y2],x1可能出现小于x2的情况,因此在计算w,h过程中,可能会出现为负值的情况。
解决方法
数据集定义代码中(/data/mydata.py),判断一下第一个点和第二个点的位置,如果格式不对,转换一下格式。
2.提示multibox_loss中向量维度不匹配
ssd.pytorch代码使用者很多人都遇到了类似的问题,参考他们的解决方案是在,Multibox_loss.py中,变换一下loss向量的维度。
3.pytorch版本不匹配
问题及解决
测试代码,提示forward只能静态调用,网上查阅资料,给出的解决方案是,采用pytorch 1.2版本以下的版本,但是我是cuda11.1,不支持切换。我的pytorch版本是1.8.1
进一步参考某博主,将ssd.py代码中如下所示行,改为下面的解决方案:
后面bbox_util.py又出现了 torch.index_select()函数错误,因此修改为以下代码:
标签:loss,记录,代码,py,pytorch,版本,ssd 来源: https://blog.csdn.net/weixin_45881512/article/details/116652525
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。