Ubuntu(linux)环境下配置Mask r-cnn环境

Ubuntu(linux)环境下配置Mask r-cnn环境

        • 0.1 语义约定
          • 0.1.1 主机、服务器
        • 0.2 所需软件和前期准备
          • 0.2.1 程序代码
          • 0.2.2 软件安装
          • 0.2.3 租用GPU(&cpu)服务器
        • 0.3 环境配置
          • 0.3.1 运用nextcloud云盘同步数据
          • 0.3.2 配置Jupyter
          • 0.3.3 conda工作环境配置

本文档将介绍如何基于Ubuntu16.0环境下配置Mask r-cnn所需环境。

这里之所以不采用windows系统,原因之一是windows的配环境方法之前已经发文档详细说明,另一个原因是自己的电脑配置无法直接运行该程序,尤其是model_train()函数(GPU显存不够),所以如果GPU的显存不到4G的电脑还是用别的GPU去跑比较合适。

这里笔者租用了deepshare.net的gpu远程服务器使用。以下介绍基于Linux的环境配置基本方法:

0.1 语义约定
0.1.1 主机、服务器

我在介绍的过程中,由于自己的电脑主机端是远程控制租用的gpu服务器端的,所以后面就姑且称两者为主机端服务器端。主机端就是自己的电脑(Windows系统),服务器就是租的电脑(Linux系统)。

0.2 所需软件和前期准备
0.2.1 程序代码

考虑到git clone下载速度一般非常慢,而且还很可能失败,而且部分代码、配置文档、以及初始化数据文件(.h5)在git上并不齐全,所以我们采用云同步的方式把代码直接传输到linux上,这是因为我们用服务器运行后会保存模型数据等重要的数据,只要我们保持云同步开启,那么数据就会自动传输回我们的电脑。这样也不用担心数据的丢失。

我的工程项目包等资源会分享在百度网盘中,下面给出链接。

链接:https://pan.baidu.com/s/1xEHVfGVvjC30W9NnUL4o-Q
提取码:6qjm
复制这段内容后打开百度网盘手机App,操作更方便哦

0.2.2 软件安装

这里需用到两个软件,一个是nextcloud云盘,用于代码的云同步;还有Xftp6软件,这是为了更方便地浏览和传输服务器的文件。

两者都可以去百度一下下载最新版,我这里也给出我网盘上的安装包,可以直接下载,但不是最新版哦,不过也能用了。

0.2.3 租用GPU(&cpu)服务器

这里我就以我自己在https://gpu.deepshare.net/上面租用的gpu为例,介绍一下注册使用的方法。

首先创建一个钱包。会给你比如钱包地址、Keystore文件、私钥之类的信息,我们在主机上找一个地方存好就行。

然后绑定邮箱。接下来充值,会把金额等值地转换为这个网站上的专用货币dbc,后面就用这个dbc去买机器的小时数就可以了。

选择一个你想用的gpu,先租用cpu安装环境,开始跑程序时改用gpu。

选择付费方式->GPU镜像选自定义->自己按需求指定使用时长(如果不想用了剩余的时间会转化为dbc退还给你的)->提交订单-> 等待验证机器 -> 付费 -> 邮箱收到密码和注意事项,开始租用。

下面是一个邮箱收到的信息截图,为了后面叙述的方便,我大概介绍一下信息的含义。

在这里插入图片描述

  • ssh登录信息:在命令行输入一行开头为“ssh”的命令,登录远程服务器。

    一般ssh命令为:ssh -p 端口号 root@服务器ip地址,例如

    ssh -p 123 root @192.168.3.3
    
  • ssh初始密码:一开始登录ssh的密码,输入的时候屏幕是不会有*显示的。直接输进去就可以了。

  • jupyter登录 url:这个远程服务器端是自动登录jupyter的。由于同一个时间可能有好几个人在用服务器,所以登录直接输这个网址就可以。

  • jupyter密码:登录密码。可以改。

  • 邮箱的信息后面还会给出nextcloud的ip地址、用户名和密码。在后面会用到。

0.3 环境配置

配置环境主要分三大部分:

1、同步传输数据:将本地的Mask r-cnn环境通过nextcloud云盘与远程服务器同步。

2、配置jupyter:这里因为默认的jupyter上面是什么都没有的,我们要改变工作路径到云盘,这样就可以直接服务器上打开我们的程序了

3、新建conda工作环境,并配置:为了运行程序,我们必须按照要求安装tensorflow等包。

0.3.1 运用nextcloud云盘同步数据

安装nextcloud云盘,安装完毕打开,先登录:

Ubuntu(linux)环境下配置Mask r-cnn环境_第1张图片

找到自己邮箱里面的私人网盘信息:

Ubuntu(linux)环境下配置Mask r-cnn环境_第2张图片
点击登录以后要先输入服务器地址,就是上面这个图片的私人网盘url地址。

然后会跳出一个授权页面,点击登录->输入网盘的用户名和密码->授权。

出现下面的界面说明授权成功。

Ubuntu(linux)环境下配置Mask r-cnn环境_第3张图片

回到客户端。在下面的页面点击"跳过文件夹设置"。

Ubuntu(linux)环境下配置Mask r-cnn环境_第4张图片

在下面的页面点击"添加同步文件夹"。

Ubuntu(linux)环境下配置Mask r-cnn环境_第5张图片

然后选择自己的工程包所在位置,选好了点击next。

Ubuntu(linux)环境下配置Mask r-cnn环境_第6张图片

选择远程目标文件夹。我是选择新建一个文件夹,像下面这样:

Ubuntu(linux)环境下配置Mask r-cnn环境_第7张图片

建立好了点击next->添加同步链接。就自动开始同步了。挂到后台运行即可。根据网络的不同同步速度也不同。

接下来开始做下面的步骤。

0.3.2 配置Jupyter

配置Jupyter我们首先需要Xftp6软件。安装该软件并打开。

点击新建文件传输按钮,如下图所示:

Ubuntu(linux)环境下配置Mask r-cnn环境_第8张图片

会弹出一个会话小窗口。点击新建会话。

Ubuntu(linux)环境下配置Mask r-cnn环境_第9张图片

在属性栏进行填充。名称随便取。主机:ssh登录上面的ip地址。协议:SFTP。端口号:ssh登录上面的端口号。

用户名:root。密码:ssh登录密码。填写完毕,点击"连接"。

Ubuntu(linux)环境下配置Mask r-cnn环境_第10张图片

接下来点击接受主机密钥。如果填写正确就能看到服务器端的文件目录了。

点击工具->选项->勾选"显示隐藏的文件"->确定。

Ubuntu(linux)环境下配置Mask r-cnn环境_第11张图片

进入服务器端的.jupyter文件夹,找到jupyter_notebook_config.py文件。右键传输到主机。

Ubuntu(linux)环境下配置Mask r-cnn环境_第12张图片

接下来用主机的记事本(或者其他IDE也可以)打开这个配置文件。

Ubuntu(linux)环境下配置Mask r-cnn环境_第13张图片

修改以下几行(可以利用查找功能快速定位):

Ubuntu(linux)环境下配置Mask r-cnn环境_第14张图片

将监听的IP修改为’0.0.0.0’。去掉前面的#号注释。

Ubuntu(linux)环境下配置Mask r-cnn环境_第15张图片

将笔记本的目录修改为’/var/www/nextcloud/data/dbc2017/files/’。这是云盘的默认目录。

接下来文件->保存。关闭,并在Xftp软件中传输回原来服务器端的位置,覆盖原文件。

然后这里为了方便起见。我们直接去租用的网站,重启机器。因为重启后jupyter是默认打开的。这样就能直接运用刚刚的配置了。重启时可能需要邮件验证码,输入即可。

在这里插入图片描述

重启后,我们一定要测试一下是否完成配置。用邮箱中给的jupyter地址和密码登录,如果左边显示有云盘中的文件(可能有乱码,没关系),说明jupyter已经设置成功。

Ubuntu(linux)环境下配置Mask r-cnn环境_第16张图片

0.3.3 conda工作环境配置

接下来就到了最重要的部分,配置系统的工作环境。这里我们使用命令行进行操作。

第一步,用ssh进入远程服务器。

命令行输入:

ssh -p 端口号 root@服务器ip地址
...
yes
...
输入root密码(这里输入是不会有显示的,输入完回车就可以了)

Ubuntu(linux)环境下配置Mask r-cnn环境_第17张图片

进入以后,因为anaconda是装好的,所以直接创建环境。

先创建环境:这里环境名我们使用py36,python使用3.6版本。

conda create -n py36 python==3.6

Ubuntu(linux)环境下配置Mask r-cnn环境_第18张图片

等待一会以后会询问是否执行。选择y。

Ubuntu(linux)环境下配置Mask r-cnn环境_第19张图片

然后就会自动开始下载了。注意这里可能会因为网络原因下载速度很慢。甚至失败。

如果失败了就重新写一遍刚才的命令,这样会把之前没有装好的内容重新下载。

使用conda安装都是这样的步骤,后文就不再赘述了。

接下来我们进入这个环境:

conda activate py36

进入以后左边会显示(py36)说明已经进入环境。

接下来我们安装ipykernel:

conda install ipykernel

一样的步骤。等待完成。接下来,我们把py36放进jupyter的kernel环境中。

python -m ipykernel install --user --name 环境名称 --display-name "你希望看见的环境名"

上面是这句的语法,你可以这样使用:

python -m ipykernel install --user --name py36 --display-name "py36"

这里请注意

有的机器可以畅通无阻的进行,而有的机器会无法执行这条语句,报错:

Ubuntu(linux)环境下配置Mask r-cnn环境_第20张图片

如果报这个错误的话,请调整prompt-toolkit的版本:

pip install prompt-toolkit==2.0.10

Ubuntu(linux)环境下配置Mask r-cnn环境_第21张图片

然后重新执行加入ipykernel的命令。应该就能成功了。

此时我们关掉原来的jupyter并重新访问。能看到py36的存在。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-a0Dra9Wr-1584605487277)(0-24.png)]

现在我们继续安装依赖包。

cd /
cd /var/www/nextcloud/data/dbc2017/files/Mask-Rcnn/

首先退回根目录。再进入云盘里面我们之前同步的文件夹(我创建的是Mask-Rcnn,如果你创建的不是这个文件名请自行修改代码)

pip install -r requirements.txt

安装依赖包中的内容。等待安装完毕。

之前说过,keras不能使用原来的版本,所以我们手动安装2.0.8版本:

pip install keras==2.0.8

而tensorflow由于还需要使用CUDA和cudnn的插件,而且我们没有图形化界面,安装非常麻烦,所以我们这里采用更为简便的conda指令。直接交给conda去完成:

conda install tensorflow-gpu==1.3.0

这里好几个包由于比较大,网络不好很容易安装失败。如果失败了重新输入该命令,多尝试几次。我也建议上午安装,那个时候网络比较通畅。

最后测试一下tensorflow的安装是否完成:

键入python,输入import tensorflow。如果没有报没有这个包的错误(warning忽略),那说明安装成功。

这样我们的环境就完全配置好啦!

这时我们可以把我们租用的cpu更换成gpu开始跑程序了。登录jupyter对kernel环境进行切换。只要点击这里就可以切换环境了。

Ubuntu(linux)环境下配置Mask r-cnn环境_第22张图片

你可能感兴趣的:(linux,python,cv,tensorflow)