从零配置Mask RCNN(基于Ubuntu18,tensorflow,CPU,PyCharm)

配个环境弄了两三天,不过今天总算是配好了,因为作者才刚开始入门,所以先试手虚拟机Ubuntu和CPU,入门以后考虑GPU和Ubuntu双系统

1.首先还是要先下Ubuntu,我用的是18(当前最新)

https://www.ubuntu.com/download/desktop

从零配置Mask RCNN(基于Ubuntu18,tensorflow,CPU,PyCharm)_第1张图片

2.当然还要下虚拟机VMware,14版

把虚拟机安装好,划分磁盘30G,内存最开始划分的2G,不过后面运行Demo发现,内存会溢出不够用,所以划分了4G(总内存8G)

从零配置Mask RCNN(基于Ubuntu18,tensorflow,CPU,PyCharm)_第2张图片

把Ubuntu18装上(过程不赘述),如上图,不过要像我一样全屏的话,安装VMwareTools,安装好了以后Ctrl+Alt+Enter全屏

基本操作环境就搭建好了

之后是配置编程环境

3.安装Anaconda3

下载Anaconda3,我用的是清华镜像,下的是Anaconda3-5.3.1-Linux-x86_64.sh

安装包复制到虚拟机桌面,打开终端,可能初用Ubuntu不知道,linux系统多用命令流来操作整个系统,包括安装,打开文件之类的。所以在桌面单击鼠标右键,选择打开终端,根目录下使用命令,bash Anaconda3-5.3.1-Linux-x86_64.sh,等待,之后一直回车,或者yes

4.安装tensorflow对应的Python3.6版本。

终端环境下,输入conda create -n tensorflow python=3.6 不过可能conda命令不可用,因为没有配置环境变量

所以输入命令:
echo 'export PATH="~/anaconda3/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc

安装完激活

source activate tensorflow (该命令表示始终在此环境下操作命令流即Python3.6,如果没有这个的话,以后pip安装的包都安装到原本Anaconda3自带的python版本里去了,以后包就各种找不到)

激活以后命令行前面会增加   (tensorflow)

5.安装Tensorflow基本环境(cpu版本)

记住一定要在tensorflow的环境下进行包的安装,即命令前都带有tensorflow

pip install --upgrade pip(配置环境的基石,更新完毕后是18.1版本)

以下命令依次输入

pip install numpy

pip install scipy

pip install cython

pip install h5py

pip install Pillow

pip install scikit-image

pip install keras

pip install theano

pip install jupyter

pip install six

6.安装pycocotools

因为maskrcnn的数据集是COCO,所以要配置数据集环境

输入 git clone https://github.com/waleedka/coco.git,可能会有git命令不可用,则先输入当前命令。sudo apt-get install git(sudo是管理员权限的意思)

再输入 pip install git+ https://github.com/waleedka/coco.git#subdirectory=PythonAPI

我遇到"git+"命令又无法使用之类的,之后我先进入coco/PythonAPI,初学Ubuntu可能不知道怎么通过命令进入文件目录,首先:

终端下,输入ls,然后看到当前目录下存在的各个文件,然后输入cd 进入各个目录,如下图

从零配置Mask RCNN(基于Ubuntu18,tensorflow,CPU,PyCharm)_第3张图片

反正一层一层的进,ls查看各个目录下的文件,最后用make或者make install命令即可,我第一次用make,发现有错误,后来用的make install,或者用python3 setup.py build_ext install,可能过程中还有gcc没找到之类的,大家百度一下ubuntu安装gcc,照着教程安装一下就好

PythonAPI目录下生成的pycocotools文件夹,复制到等会下载的Mask-RCNN文件根目录下

7.安装tensorflow

输入 pip install tensorflow==1.5.0     //版本号根据需要自定义

安装完成以后在命令行上输入:python   回车,进入python3.6,在命令行分别输入以下命令

(tensorflow)$ python    ###########

import os
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2' 
import tensorflow as tf
hello = tf.constant('Hello, TensorFlow!')
sess = tf.Session()
sess.run(hello)

如果命令行输出    Hello, TensorFlow!    ,说明tensorflow安装成功

测试完成以后输入  exit()  退出python,继续下一步安装

8.安装opencv,imagaug

pip install opencv-python

pip install imgaug

9.配置Mask-RCNN

9.1 下载Mask-RCNN

 终端输入 git clone https://github.com/matterport/Mask_RCNN.git

9.2 下载coco权重文件

https://github.com/matterport/Mask_RCNN/releases

在页面上下载  mask_rcnn_coco.h5 (246MB)

下载完成以后放在Mask_RCNN目录下即可

如图

从零配置Mask RCNN(基于Ubuntu18,tensorflow,CPU,PyCharm)_第4张图片

基本上就可以了

之后就是运行demo,最开始用的是jupyter notebook

在前面步骤的基础上进入 Mask_RCNN目录

在命令行输入:jupyter notebook  回车

稍等片刻,会在浏览器打开页面,点击进入  samples目录,点击demo.ipynp进入代码运行页面

选择  Cell  菜单,在  Cell下拉菜单选择  Run All,稍等片刻,在该页面底部会输出运行结果

不过始终服务要失去响应,可能是因为虚拟机的缘故,内存分配太小,且使CPU运行

附:Pycharm安装

改用习惯的Pycharm,下载Pycharm的linux版本。

从零配置Mask RCNN(基于Ubuntu18,tensorflow,CPU,PyCharm)_第5张图片

怎么安装就如同前面Anaconda差不多,就不赘述了

并且要把demo.ipynb转为demo.py

1. 首先命令行中输入:

python -m IPython notebook 

打开jupyter,进入你要转换的ipynb中

从零配置Mask RCNN(基于Ubuntu18,tensorflow,CPU,PyCharm)_第6张图片

2. Files —> Downloads  as—> python(.py)

从零配置Mask RCNN(基于Ubuntu18,tensorflow,CPU,PyCharm)_第7张图片

之后打开Pycharm,打开maskrcnn文件夹,然后要重新设置一下编译器,点文件菜单,设置从零配置Mask RCNN(基于Ubuntu18,tensorflow,CPU,PyCharm)_第8张图片

之后重新选择一下,选择3.6从零配置Mask RCNN(基于Ubuntu18,tensorflow,CPU,PyCharm)_第9张图片

并且从零配置Mask RCNN(基于Ubuntu18,tensorflow,CPU,PyCharm)_第10张图片

不要使用这个绿色的小圈,因为这个绿色的小圈代表使用Anaconda3自带的包,不是用的我们刚才下好的包

之后确定

11.运行demo

作者电脑运行起来很卡,没办法

可能会遇到什么,get_ipython().run_line_magic('matplotlib', 'inline') 这句话报错,直接注释掉,这是因为这句话在jupyter notebook画图有用,在Pycharm没用

之后遇到Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2 FMA

大概意思是:你的CPU支持AVX扩展,但是你安装的TensorFlow版本无法编译使用。

由于tensorflow默认分布是在没有CPU扩展的情况下构建的,例如SSE4.1,SSE4.2,AVX,AVX2,FMA等。默认版本(来自pip install tensorflow的版本)旨在与尽可能多的CPU兼容。另一个观点是,即使使用这些扩展名,CPU的速度也要比GPU慢很多,并且期望在GPU上执行中型和大型机器学习培训。
解决方法:在代码中加入

os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'

从零配置Mask RCNN(基于Ubuntu18,tensorflow,CPU,PyCharm)_第11张图片

之后在运行,可能会出现tensorflow 内存不足:Process finished with exit code 137 (interrupted by signal 9: SIGKILL),因为虚拟机分配内存比较少,解决方案有两个,一个是BATCH_SIZE=1,批量改小,不过本来代码里都已经是1了,所以增大虚拟机的内存,从2G变成了4G

最后在运行一下

从零配置Mask RCNN(基于Ubuntu18,tensorflow,CPU,PyCharm)_第12张图片

demo顺利展示

你可能感兴趣的:(DL,MaskRCNN)