[CSRNet] CSRNet-pytorch 复现过程记录

一、开发环境

windows10+Anaconda3+Python3.6+CUDA10.0+Pytorch1.5+Pycharm
提醒:pytorch1.0版本很有可能会在训练的时候报错,所以建议使用pytorch1.5

二、论文代码

CSRNet代码链接

三、导入项目

1、通过git下载或者zip网页下载,二选一
在这里插入图片描述
2、导入项目至pycharm
在这里插入图片描述

四、数据准备

1、数据集
ShanghaiTech
百度网盘:https://pan.baidu.com/s/1cC4wkHAWfJ15VKwG2qjJ6A
提取码:i0xa
2、导入数据集到项目
新建dataset目录,导入数据
在这里插入图片描述
3、.ipynb文件转换成.py文件
.ipynb文件,pycharm中无法正常查看和运行,故需要处理成.py文件。
操作步骤如何使用jupyter 打开.ipynb文件参考教程

  • Anaconda中的jupyter notebook打开.ipynb后缀的文件
  • 把.ipynb文件中代码拷贝至项目中新建的同名的.py文件中
  • 比如make_dataset.ipynb,用jupyter notebook打开,然后在项目下新建make_dataset.py,把make_dataset.ipynb中的代码拷贝到make_dataset.py
  • 按照这个方法,生成make_dataset.py、val.py
  • 为什么没有make_model.py?因为make_model.ipynb和model.py是等价的,直接删掉make_model.ipynb即可
  • 替换之后,目录如下
    在这里插入图片描述

4、处理json文件

  • 作者给出的json文件中包含着SHHA,SHHB两个数据集文件的路径信息
  • 这里我使用最简单暴力的方法,在文件目录中使用记事本打开json文件
  • 替换成自己的相对路径
  • 图示如下
    在这里插入图片描述
  • 使用这种方法,把剩下的json文件都安排好

5、生成GroundTruth文件

  • 这里需要用到make_dataset.py文件,修改路径为dataset
    在这里插入图片描述
  • 运行该脚本,漫长的等待之后,会在groundtruth文件夹中生成.h文件
  • 这.h文件就是生成的GroundTruth密度图文件

五、训练模型

打开终端,输入命令(每解决一个问题,就重新执行一次命令)
在这里插入图片描述

  • 错误1:No such file or directory: ‘train.json’
    在这里插入图片描述
  • 解决1:确实找不到文件,因为根本就没有train.json、val.json这两个文件。这两个其实是统称。
    train.json指代part_A_train.json,part_B_train.json
    val.json指代part_A_train_with_val.json,part_A_val.json,part_B_train_with_val.json,part_B_val.json
    对于SHHB的执行命令:python train.py part_B_train.json part_B_val.json 0 0
    对于SHHA的执行命令:python train.py part_A_train.json part_A_val.json 0 0
    其后跟着的第一个数字0,表示使用序号为0的GPU;第二个0表示的是线程数。
  • 错误2:这里我选择SHHB的命令运行,model.py第18行报错NameError: name ‘xrange’ is not defined
  • 解决2:这是新旧版本的历史遗留问题,将其改成range即可。另外下面19行,还有一个问题,需要转成list才能支持切片操作,故两边都使用list包裹。
    在这里插入图片描述
  • 错误3:image.py报错:TypeError: integer argument expected, got float。
  • 解决3:需要改成双斜杠,整除。
    在这里插入图片描述
  • 成功进入到训练模型的流程。
    在这里插入图片描述

六、测试模型

1、经过漫长的训练时间,训练出了一个在SHHB上的模型

  • 该权重文件上传百度云,有需要的同学自取。
  • https://pan.baidu.com/s/1HZsemMo_S2nS1aOVX1ueaQ 提取码:0x9c
    在这里插入图片描述
    2、打开val.py
  • 修改路径,和模型权重文件的路径
    在这里插入图片描述
    在这里插入图片描述
  • 接着右键运行val.py,得出结果
    在这里插入图片描述

tips:

  • 我刚开始使用的pytorch1.0,报错不能正常训练模型。在查了一些资料后,改成了pytorch1.5的版本,能够成功训练。
  • ok各位,以上就是这篇文章的全部内容了,非常感谢你能看到这里。如果你觉得这篇文章对你有所帮助求赞求收藏求评论求转发,别忘了点一个大大的关注,各位的支持就是我最大的动力,再见!邮箱:734140820@qq.com
  • 28
    点赞
  • 89
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 72
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 72
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wpw5499

若有帮助,不妨请博主一杯奶茶吧

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值