Actions as Moving Points复现
寒假期间,研读了王立民老师的论文,决定去复现其文章中的代码:https://github.com/MCG-NJU/MOC-Detector。由于自己的显卡太过于垃圾,因此我将代码git到了学校的集群环境。但是在复现过程中仍出现很多问题。下面我将自己遇到的问题以及解决方法分享给大家,供参考。如有不足,希望大家补充。
实验环境
该代码在github上说明的环境是:
Ubuntu 16.04.1, Python 3.5.2, PyTorch 0.4.1, torchvision 0.2.1,NVIDIA TITAN XP with cuda 9.0。
刚开始在运行的时候,按照Readme创建了MOC的conda环境,环境的设置与github保持一致。但在执行make.sh的时候出现了几个错误:
(1)TypeError: dist must be a Distribution instance
出现这个错误,网上很多方案都是将setuptools降低到0.9.8,但是这个方法对我无效。在查看多个方案之后,最后的方法是将gcc降低到5.5.0。可能会有小伙伴有疑问,为什么会把gcc降低到5.5.0,实际上这个错误是与py35有关,
python3.7/distutils/cmd.py", line 57, in __init__
raise TypeError("dist must be a Distribution instance")
这是报错的原话。
如果大家选择更新pytorch那么这个问题任然会有,而且还会产生另外一个错误:ImportError: torch.utils.ffi is deprecated. Please use cpp extensions instead.
这个问题,有的博主也做了说明,这个是版本问题,高版本的语法规则改变了,因此做相应替换就可以了。但是,如果你觉得改代码麻烦,那就选择pytorch=0.4.1。
所以,上面的问题,用的方法就是将gcc降低到5.5.0,然后运行make.sh就可以了。至于你愿不愿意改代码,看个人喜好。如果你把orch.utils.ffi的相关代码改动了,在train的时候还会有no moudule _ext的问题出现。
(2)ImportError: torch.utils.ffi is deprecated. Please use cpp extensions instead.
这个问题参考一下博客:
https://blog.csdn.net/ShuqiaoS/article/details/88420326
说的十分详细。
**
在train的时候可能会遇到
**
(1)ImportError: /cm/shared/apps/gcc5/5.5.0/lib64/libstdc++.so.6: version `GLIBCXX_3.4.22’ not found
这个问题的产生就是因为我们在 bash make.sh的时候将gcc降到了5.5.0,低版本对应的GLIBCXX没有到3.4.22,然后你如果用gcc6.5.0,那么报错则是ImportError: /cm/shared/apps/gcc5/5.5.0/lib64/libstdc++.so.6: version `GLIBCXX_3.4.26’ not found。所以最好的办法是将gcc升高点,我采用的是gcc9.2.0,这样train的这个报错就解决了
(2)依旧是train的时候,ImportError: cannot import name '_wrap_function’
这个问题就比较尴尬了。就是我问题二写的那里,如果只是替换部分代码可能对make.sh没影响,但是在train的时候会报错。这个问题该怎么解决呢,最好的办法是重写DCNv2的代码(我将这个代码重写了,当然是参照网上)。如果不愿意重写,那么你的pytorch就用0.4.1,显卡可能要低一点,20系列之下的应该都可以用。如果拟采用30系列的显卡去训练,那我还是推荐你去重写DCNv2的代码。
(3)ImportError: No module named '_ext’
这个问题是因为我重写的DCNv2代码,参考https://github.com/CharlesShang/DCNv2/issues/96。新修改的代码在build后生成了.so文件,但是没改名,所以才报错。解决办法就是在 ${MOC_PATH}/src/network/DCNv2下面创建一个ext文件夹,然后在ext文件夹下再创建一个dcn_v2文件夹,然后将生成的.so文件cp到这个文件夹下。这样这个问题就解决了
(4)RuntimeError: cuda runtime error (11) : invalid argument at /opt/conda/conda-bld/pytorch_15354919743
这个是因为cuda版本问题,对于30系列的显卡或者20系列的显卡,这个问题最好的解决方案就是重写DCNv2,将pytorch升级到1.4+。这里参考了https://blog.csdn.net/neudeep/article/details/113058729。我私聊该博主了,但是并没有回复我,所以我自己修改了DCNv2的代码,使得它可以兼容pytorch1.x的版本。
(5)undefined symbol: _ZN2at19UndefinedTensorImpl10_singletonE
这是由于torch的cuda版本和机器的cuda版本不同导致。利用conda install pytorch=1.5就可解决啦,如果不放心那就参考pytorch的官方安装指令。
我遇到的大概就这几个问题,核心就是修改DCNv2的代码(一劳永逸)。
Actions as Moving Points复现相关推荐
- Actions as Moving Points
论文下载地址:https://arxiv.org/abs/2001.04608 代码地址:https://github.com/mcg2019/MOC-Detector 论文创新点:当前存在的动作识别 ...
- hdu 4717 The Moving Points(三分+计算几何)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4717 说明下为啥满足三分: 设y=f(x) (x>0)表示任意两个点的距离随时间x的增长,距离y ...
- CodeForces - 1311F Moving Points(线段树+离散化)
题目链接:点击查看 题目大意:给出 x 轴上的 n 个点,每个点都有一个位置和一个速度,每个点会根据速度在 x 轴上移动,现在规定dis( x , y )为点 x 和点 y 在移动过程中的最小距离,我 ...
- The Moving Points
hdu4717:http://acm.hdu.edu.cn/showproblem.php?pid=4717 题意:给你n个点的坐标,然后每个点都有一个速度,求在什么时刻任意两个点的最大距离最小,以及 ...
- 【ECCV2020】接收论文列表part1
ECCV2020将于2020年8月23-28日在线上举行,今年共接受了1361篇论文,本文是接收论列表的第一部分,第二部见链接 Paper ID Paper Title Category 267 Qu ...
- 2020AI顶会的腾讯论文解读 | 多模态学习、视频内容理解、对抗攻击与对抗防御等「AI核心算法」
关注:决策智能与机器学习,深耕AI脱水干货 报道 | 腾讯AI实验室 计算机视觉领域三大顶会之一的 ECCV(欧洲计算机视觉会议)今年于 8 月 23-28 日举办.受新冠肺炎疫情影响,今年的 EC ...
- ECCV 2020开源项目合集 (ECCV 2020 paper list with code/data)
文章转载自https://www.paperdigest.org/2020/08/eccv-2020-papers-with-code-data/,如有侵权,留言后删除. 以下表格列出了ECCV 20 ...
- 【汇总】行为识别、时序行为检测、弱监督行为检测、时空行为定位论文代码(持续更新!!!)
视频行为识别与轻量化网络的前沿论文.代码等 https://zhuanlan.zhihu.com/c_1207774575393865728 CVPR 2020 行为识别/视频理解论文汇总 https ...
- VTK使用矢量数据弯曲几何体
vtkWarpVector is a filter that modifies point coordinates by moving points along vector times the sc ...
最新文章
- Spring原理总结
- 常考数据结构与算法:数组中未出现的最小正整数
- 待删除未删除 问题解决
- 带有权重的服务器SLB的实现
- 事件,信号量,互斥量
- Python【7】-数据分析准备
- MySQL学习笔记7:基本查询
- 随机森林做特征重要性排序和特征选择
- 为github帐号添加SSH keys
- java压缩图片等比缩放_java对图片进行压缩和resize缩放的方法
- 关于mongodb的可视化工具:nosql manager for mongodb
- Oracle在Linux平台安装时涉及的/etc/security/limits.conf
- Java多线程学习总结(5)——乐观锁和悲观锁的基本概念、实现方式(含实例)、适用场景及常见面试题
- Nginx 配置https证书认证
- PHP7通过yum源安装及性能测试
- Atitit 基于文件的数据库保存系统json文档数据库 目录 1.1. 一行数据一个文件,一个文件夹微数据表表	1 1.2. 保存C:\wamp\www\tisye\tisye.php	1 1.3
- linux 端口映射 命令
- cx_Oracle.DatabaseError: DPI-1047: Cannot locate a 64-bit Oracle Client libr....
- 2022-04-08美团笔试练题
- 8 卷积神经网络——解决参数太多问题(1)