最近在调DiMP的代码,由于疫情,所以只能在自己的电脑上配置环境,考虑到docker的移植比较方便(后续要移植到实验室的工作站上),所以我选择了docker。调试过程中也遇到了很多坑,同时查资料的时候关于这方面的资料很少,这也让我很头疼,所以将自己调通的过程分享给大家,希望大家以后可以顺利~
关于pycharm与docker联调,这里就先不多说了吧,网上有很多教程,如果大家有需要的话,后续可以写一个。
第一步,开启容器
docker run -it --gpus all -p 127.0.0.2:8889:22 -p 127.0.0.2:8097:8097 -v /home/wzd/Dataset/vot2019:/workspace/Dataset -v /etc/localtime:/etc/localtime:ro -v /tmp/.X11-unix:/tmp/.X11-unix -e DISPLAY=unix$DISPLAY -e GDK_SCALE -e GDK_DPI_SCALE --privileged -v /dev/video0:/dev/video0 test:v1.2 /bin/bash
其中,-p 127.0.0.2:8889:22是进行docker与pycharm的端口映射,-p 127.0.0.2:8097:8097是进行docker内visdom端口与本地电脑visdom端口映射。
第二步,在docker容器内下载visdom
pip install visdom
第三步,在docker容器内打开visdom
输入visdom或python -m visdom.server均可
此时,界面可能会提示
******Checking for scripts. Downloading scripts, this may take a little while*******,然后就停住不动了。这种情况下,follow下面这几步就ok了(对我来说很好用)
(1)在容器根目录里,用find -name "visdom"找一下visdom文件夹的位置,可能结果不唯一,但我们找到那个上一级目录是site-packages的路径用cd命令进去就行了。
(2)在visdom文件夹中,打开server.py文件,注释掉download_scripts()这行代码即可。再在终端输入visdom,出现如下图所示的内容,就成功了一半了!!!!其中,http://f45640d3e7f8:8097就是visdom的网址,f45640d3e7f8是容器ID,需要替换为容器的IP地址,比如我在一开始设定的127.0.0.2,最后网址就是http://127.0.0.2:8097,在浏览器输入网址,即可打开visdom。
但是你可能不会出现上面的导航栏,网页有可能有蓝屏问题,此时需要将visdom文件夹下的static文件进行替换,文件放在下面的链接里了,打不开的话,你们可以自己找一下,网上很多大佬都有分享~
https://download.****.net/download/missyoudaisy/12174923
现在必要的工作就算完成了,在pycahrm中运行代码(前提pycharm和docker已经联调成功了哦),打开visdom,就会看到内容了。大家不调DiMP也没关系,可以试试visdom官网里的demo:https://github.com/facebookresearch/visdom
分享到此就结束了,大家有问题的话,我们可以一起交流~祝大家科研顺利:)