ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

ssd.pytorch 踩坑记录

2021-05-11 14:32:26  阅读:163  来源: 互联网

标签: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. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有