PART1: 远程连接服务器
启动终端1
ssh usrname@ip
vncserver :59 -geometry 1680x950
启动终端2
vncviewer
ip:59(端口号)
(这两步可以安装vncviewer的软件,在里面输入ip,启动vncserver之后直接启动vncviewer的软件就行)
基本操作:
-
退出服务器:
vncserver -kill :59
-
复制文件:
- 本地到服务器:
scp -r 本地路径 usrname@ip:服务器路径
(单个文件不必加r,加也行) - 服务器到本地
scp -r usrname@ip:服务器路径 本地路径
- 本地到服务器:
-
查看GPU使用情况:
watch -n 1 nvidia-smi
-
python版本切换:
sudo rm /usr/bin/python sudo ln -s /usr/bin/python2.7 /usr/bin/python
-
查看进程用户:
ps -f -p 26359
,其中,UID 表示用户ID,PID 表示进程号,PPID 表示父进程号,TIME 表示执行时间,CMD 表示执行命令
PART2:环境配置
项目源码之后会上传github,按照requirements的要求配置即可.其中,tensorflow-gpu版本改为1.6.0,cuda为9.0.176,cudnn为7.0.5,使用annaconda新建环境mask_rcnn,python版本为3.5
查看tensorflow版本:
python
import tensorflow as tf; tf.__version__
值得注意的是,cuda和cudnn都是安装在系统环境内的,如果安装了许多版本的话需要在bashrc中指定cuda和cudnn的版本,如
export PATH=$HOME/cuda-9.0/bin:$PATH
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HOME/cuda-9.0/lib64/
但如果是非root用户的话,终端会调用系统里的cuda(不清楚为什么,以后有机会再研究),即使指定了也没有派上用场
所以在服务器上使用的是pycharm编辑器,在编辑器里指定cuda和cudnn的路径
pycharm File-Settings能看到项目的python编辑器环境,此处python使用的是conda环境下的python版本,底下列出了该环境下所有的东西,如果这地方有显示cuda和cudnn的话,说明下anaconda的时候选择了anaconda自带的cuda和cudnn的话,或者是在该conda环境下手动安装了cuda和cudnn的某版本,而如果你想用系统的cuda版本的话,就需要将conda环境里的删掉.(conda中下的cuda版本的优先级更高,或许可以把想要的版本下在conda环境里)
至于cuda和cudnn的路径,点击右上角的Edit Configurations,就可以设置cuda的路径,而cudnn的路径是包含在cuda的include里的,按照格式配好cuda即可.
自己用户下cuda的路径是/home/usrname/cuda-9.0/version.txt
系统cudnn路径是/usr/local/cuda/include/cudnn.h
cudnn路径是/home/usrname/cuda-9.0/include/cudnn.h
查看指令:
nvcc -V
cat /home/zhouguilin/cuda-9.0/version.txt
cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
cat /home/zhouguilin/cuda-9.0/include/cudnn.h | grep CUDNN_MAJOR -A 2
配置好之后每次点pycharm上的run即可,如果在终端上运行,就会出现上面说的仍然调用根目录下的cuda.
conda的一些检查安装删除操作
source activate mask_rcnn
conda list
conda uninstall cudnn/cudatoolkit
conda install cudnn=7.0.5
conda info -e
安装环境的步骤…(以在本机上安装为例,本机上无anaconda)
https://github.com/matterport/Mask_RCNN
maskrcnn源码来自此github,按照github中installation写的步骤,第一步先根据requirements.txt文件安装需要的东西,其中tensorflow改为tensorflow-gpu==1.6.0(服务器上是1.9.0好像也没啥问题)。不过装tf之前要先装cuda和cudnn,所以先把tf注释掉,其他装好。
pip3 install -r requirements.txt
pip时可能遇到很多次网络问题,重启就行,尤其pip不要升级,不过升级了也有博客能解决
问题一:
解决方案: 切换python版本:https://www.cnblogs.com/yifugui/p/8649864.html(用这篇博客的时候先自行理解一下软链接的意思也作用,不要直接照着做,当时直接照着做出错了,弄了很久才弄回去,关于软链接的内容和指令,可以看这个博客linux usr/bin/和 usr/local/bin之间的关系等等,可以分别在两个目录下输入ll指令,观察软链接是否正确配置)
后来尝试这个装好了,主要是自动配置pip3的部分,安装目录用默认的就行:https://www.jianshu.com/p/209254204961(当然这个也遇到了一些问题,逐个解决了,比如,安装python3.7时候,报错ModuleNotFoundError: No module named ‘_ctypes’,以及dpkg: 处理软件包 XXXX (–configure)时出错解决方法
接下来就可以顺利安装requirements了。
查看tensorlow版本:
python
import tensorflow as tf
tf.__version__
接下来安装cuda和cudnn。第一步先装nvidia驱动(本来有的,但因为升级内核,nvidia驱动无法加进内核里,所以要提前看一下显卡驱动的要求以及更换内核,更换内核的话进入高级模式就行,如果想删,参看我的另一篇博客https://editor.csdn.net/md/?articleId=115330554
如果缺包(如pyrealsense2),conda install又没这个包,anaconda环境下的pip又报错,可以用
Python /home/sama/anaconda3/ends/mask_rcnn/site-packages/pip/__main__.pay install —target=‘home/sama/anaconda3/envs/mask_rcnn/lib/python3.6/site-packages’ pyrealsense2
qtplugin的错:注释cv2
sudo apt-get install libxcb-xinerama0
PART3:基于Mask_Rcnn算法的视觉检测
这部分做了很多工作,还写了很多py文件和sh脚本,详见后续的github代码吧.
首先在mask_rcnn环境中安装labelme,labelme版本为3.20.0,高版本似乎会有问题.然后标注图像,进行训练
训练注意事项:要改三个地方,在上面的链接里有写,但是一定得改对,如果报了下面这个错,那就是标签没改对我把biscuit box打成了biscuit_box,虽然文件夹名字是biscuit_box,但标签名是biscuit box,找了半天原因,最后是在这篇博客最后那部分的启发下打开json文件发现的问题
https://www.it610.com/article/1291947667273883648.htm
未完待续。。。