前言
经过三个星期的刻苦奋斗,终于成功运行出了DRRG,期间经历了无数的坑,我不敢说我是全网第一个跑出来的(肯定不是),但我绝对是第一个写出来教程的,本人也是一个小白,过程不易如果有帮到您请给一个赞,谢谢大家。前几天写的今天回来补充一点,因为很多东西涉及到系统权限,所以请大家用root权限做,不是用root用户哦。
命令:
su root
然后输入你的密码就行了·,要不可能会报错。
效果图
先上训练图,证明我跑了:
准备
首先,附上代码网址:
https://github.com/GXYM/DRRG
然后我们做准备工作:
第一步下载代码:https://codeload.github.com/GXYM/DRRG/zip/master
第二步:下载数据集:
点击代码网址这部分。有条件的小伙伴可以用谷歌云下载,实在不行我告诉你一种办法去淘宝找代下载。
第三步把数据集放到对应文件夹:
放这里。至此我们就准备了所有的代码部分。
系统准备
首先我们在代码网址:https://github.com/GXYM/DRRG。看一下运行步骤,先是编译csrc文件(make命令),然后是编译/nmslib/lanms,最后bash tool文件夹下的train_CTW1500.sh文件。这里我解释一下这都是linux的命令,Windows也有办法用但是要下载git啥的比较复杂。所以我们要有一台linux真实机(注意虚拟机不可以,因为代码要用到cuda,虚拟机的显卡是cpu模拟出来的不能用的),真实机要是n卡,不能是AMD显卡,AMD装不了cuda。
本人只有一个N卡的win10系统,所以我的解决方案是:双系统。我装的第二系统是centos7.附上镜像网址:http://mirrors.aliyun.com/centos/7.8.2003/isos/x86_64/CentOS-7-x86_64-Everything-2003.iso
官网免费,大家可以放心下载。
至于双系统的安装,建议大家去淘宝找人安,我自己安安坏了,然后重做系统加安装花了110,桑心。。。。。。。。。
然后我们假设你有了双系统。我们进入下一步,软件准备.
软件准备
让我们看一下DRRG的要求文件:
这就是代码中的README文件。大家可以自己去看,这里我要说一点,他有错误:GCC必须是8,9是不好使的。
下面我们说软件:首先python版本必须是3.7,这点很重要,因为pytorch只能用1.2.0,其他都不好使所以,python必须是3.7,然后centos自带的python是2,所以即使你安了3.7也是按在主环境里面但是后续安装pytorch的时候你可能不知道他具体安在哪个环境里面。所以我推荐是做一个虚拟环境,虚拟环境管理不易,推荐下载anaconda。下面我们进入下载环节。
安装anaconda
为了照顾初学者我们全程用命令安装:
首先右键打开终端,就是这个:
然后我们下载anaconda的安装文件,注意你在哪打开终端他就会下到哪,所以我推荐在桌面打开,方便删除,下载命令:
wget https://repo.anaconda.com/archive/Anaconda3-2020.07-Linux-x86_64.sh
安装anaconda:
bash Anaconda3-2020.07-Linux-x86_64.sh
这里你要注意一点,由于网速问题你可能下的sh文件不完整,完整的文件应该是500m,如果下的不对多运行几次第一个代码就行了。但是每次下载的文件名字会在sh后面加上1、2、3什么的。所以你在运行第二条命令的时候也要做出更改,也即是说完整的sh文件叫什么,就bash什么。
然后是安装图形化界面步骤,这里推荐一个大神的安装步骤:
https://blog.csdn.net/qq_39431829/article/details/100165319
然后是安装python3.7。
制造python3.7虚拟环境
当我们安装完anaconda,我们就进入了图形化界面,然后我们点进去Environments,也就是这个界面:
注意:为了安装3.7,我们得先点击一下升级数据:Update index,否则你是找不到3.7的。然后点击Create 制造虚拟环境,点完以后是这样
的:其中name是随便取得是你虚拟环境的名字。随便取(最好取DRRG我去的这个方便你后面看教程),然后python选择3.7,其他不要动,点击Create(不是刚才那个是这个小框的),然后等,直到他安完(肯呢个时间比较长,因为是外国网站)按完以后如果base(root)下面出现了你取名字的那个名字,就说明成功了,否则是失败了,再来几遍。
接下来我们有了python3.7虚拟环境,然后是安库,比如pytorch啥的。
安库
我们要安得库有pytorch–1.2.0,opencv,matplotlib,shapely,sklearn,easydict,pillow这些库虽然没有列出,但是你必须有,两个方法安装一个是你就用ananconda安当然最后一个不行而且比较慢,另外一个是用pycharm安装,比较快。先说ananconda:
只需要在搜索框搜索对应的软件名字,但是前提是你把install改成了uninstall,否则找不到,而且还有一点sklearn叫Scikit-learn,别搜错了。搜到了点小方框然后apply,直到安装完成,当搜不到就是完成了。第二种方法是下载pycham,然后运行,当然运行代码pychrm是必须的。所以下一步我们开始安装pycharm。
安装pycharm
同样我们为了方便初学者全程用命令安装。
同样我们先打开一个新的终端
wget https://download.jetbrains.8686c.com/python/pycharm-community-2020.2.3.tar.gz
然后解压安装包:
tar -xzvf pycharm-community-2020.2.3.tar.gz
同样因为网络问题有可能下载失败,安装包大概800多m,如果下载失败,安装要和anaconda做一样的处理改动命令tar -xzvf后面的内容。
然后我们就有了一个解压后的文件夹:应该叫:pycharm-community-2020.2.3文件夹,点进去,进入到bin文件夹,然后打开新的终端输入:
./pycharm.sh
然后一直下一步就行了,
然后我们要pycharm会在主文件夹下建一个PycharmProjects文件点进去,再点击pythonProject进去,把代码放进去就行了。然后我们要把anaconda环境导入,点这里:
然后,
切记,我这里是我的虚拟环境取名叫DRRG,你要是别的就在路径的envs下找你的环境名字。然后ok,当这样:
你有了这个就是导入成功了。然后我们运行程序。
安装cuda
在运行程序之前我们要先安装cuda10.1,其他版本不行,切记,因为要和pytorch版本对应,具体方法推荐大神的博客:网上有很多教程,大家自己搜一下,如果你成功禁用了原有驱动,你可以运行以下命令:
wget https://developer.nvidia.com/compute/cuda/10.1/Prod/local_installers/cuda-repo-rhel7-10-1-local-10.1.105-418.39-1.0-1.x86_64.rpm
sudo rpm -i cuda-repo-rhel7-10-1-local-10.1.105-418.39-1.0-1.x86_64.rpm
sudo yum clean all
sudo yum install cuda
这些命令会帮你安装cuda10.1,但是他同样会产生网速问题,所以你要做和anaconda一样的处理。切记完成以后要配置环境变量,然后重启。才能生效,然后做的是升级GCC版本这里有个问题,要求文档说GCC是9.0但是我测试后发现,只有8才好使大家别按错了,这里推荐大神的教程:CentOS完美升级gcc版本方法 – 吴昊博客 https://blog.whsir.com/post-4975.html
注意:同样要配置环境变量重启或者source。版本很重要这里再说一遍!!!
跑代码
接下来我们要去跑代码,首先我们要改tool下的train_CTW1500.sh文件,这里主要改两点,batch_size 和你的GPU有关他越大对你GPU要求越高,我设置为2,还有一个参数num_workers他和你的CPU有关,cpu核数越多打就可以设置越大,我设置为4,不要太大否则会卡死,初始文件是没有的,你要自己加上,在末尾后空格加,还有一点不用改但是很重要,gpu的0不是数量是名字,是说第一块gpu的名字叫0,以此类推:
--num_workers 4
否则会默认为8,可能和卡死,然后保存。
接着我们开始跑:
第一步打开terminal在pycharm的左下角点开它,应该是这样的:
首先我们要进入代码文件夹,在$后面输入:
cd DRRG-master
然后我们安装库,如果你在anaconda安了只需:
pip install easydict
否则依次运行以下命令:
pip install shapely
pip install sklearn
pip install pillow
pip install easydict
pip install matplotlib
pip install opencv-contrib-python
pip install torchvision==0.4.0
最后一句就是安装pytorch1.2.0,切记版本不可错,错了第二步编译会报错。
然后就是跑代码。
跑代码
第一步:进入csrc文件并且编译
cd ./csrc
make
不报错就是成功,错误原因都是版本,改一下就好了,接着退回主文件夹:
cd ../
然后复制官网命令:
cd ./nmslib/lanms
记得要分开
make
无错误就是成功。这里我补充一点,有的小伙伴私信我说遇到了:
g++: error: unrecognized command line option ‘-fno-plt’ Makefile:10: recipe for target 'adaptor.so' failed
错误,这个如果你是在centons,且gcc8
的环境下一般不会报错,但是如果仍然报错了,解决办法参照这个网址:https://github.com/GXYM/DRRG/issues/4,可以解决虽然不是特别完美的办法,但是可以保证顺利运行。
接下来退出两级:
cd ../../
然后训练:进入tool:
cd tool
运行:
sh train_CTW1500.sh
运行,一般会出出两个错误:一个是网络错误再执行以下上面命令就行了。
另外一个错误是没有对应文件夹:只要在代码主文件夹下建立相应文件夹就能解决。
然后就等训练了。
最后
写到这里,说明你的环境配置好了,接下来就等他训练完成吧,然后得测试只要用
cd ../
退回主文件夹然后复制官网命令就好了,这里我再补充一点,就是官网命令没有指定gpu可能会报错,所以你的命令应该是:
python eval_TextGraph.py --gpu 0
意思是用名字为0(就是第一块)的gpu跑。
这就是所有的运行方法了,本人亲测,希望能帮到您。如果有效记得点赞哦。另外如果有神魔问题可以私信我或者评论,我会看到以后解答,因为本人最近小论文也比较忙可能回复不及时还请见谅。
今天的文章全网第一篇:DRRG代码的具体运行方法(亲测)分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/59943.html