配个环境弄了两三天,不过今天总算是配好了,因为作者才刚开始入门,所以先试手虚拟机Ubuntu和CPU,入门以后考虑GPU和Ubuntu双系统
https://www.ubuntu.com/download/desktop
把虚拟机安装好,划分磁盘30G,内存最开始划分的2G,不过后面运行Demo发现,内存会溢出不够用,所以划分了4G(总内存8G)
把Ubuntu18装上(过程不赘述),如上图,不过要像我一样全屏的话,安装VMwareTools,安装好了以后Ctrl+Alt+Enter全屏
基本操作环境就搭建好了
之后是配置编程环境
下载Anaconda3,我用的是清华镜像,下的是Anaconda3-5.3.1-Linux-x86_64.sh
安装包复制到虚拟机桌面,打开终端,可能初用Ubuntu不知道,linux系统多用命令流来操作整个系统,包括安装,打开文件之类的。所以在桌面单击鼠标右键,选择打开终端,根目录下使用命令,bash Anaconda3-5.3.1-Linux-x86_64.sh,等待,之后一直回车,或者yes
终端环境下,输入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)
记住一定要在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
因为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 进入各个目录,如下图
反正一层一层的进,ls查看各个目录下的文件,最后用make或者make install命令即可,我第一次用make,发现有错误,后来用的make install,或者用python3 setup.py build_ext install,可能过程中还有gcc没找到之类的,大家百度一下ubuntu安装gcc,照着教程安装一下就好
PythonAPI目录下生成的pycocotools文件夹,复制到等会下载的Mask-RCNN文件根目录下
输入 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,继续下一步安装
pip install opencv-python
pip install imgaug
终端输入 git clone https://github.com/matterport/Mask_RCNN.git
https://github.com/matterport/Mask_RCNN/releases
在页面上下载 mask_rcnn_coco.h5 (246MB)
下载完成以后放在Mask_RCNN目录下即可
如图
基本上就可以了
之后就是运行demo,最开始用的是jupyter notebook
在前面步骤的基础上进入 Mask_RCNN目录
在命令行输入:jupyter notebook 回车
稍等片刻,会在浏览器打开页面,点击进入 samples目录,点击demo.ipynp进入代码运行页面
选择 Cell 菜单,在 Cell下拉菜单选择 Run All,稍等片刻,在该页面底部会输出运行结果
不过始终服务要失去响应,可能是因为虚拟机的缘故,内存分配太小,且使CPU运行
改用习惯的Pycharm,下载Pycharm的linux版本。
怎么安装就如同前面Anaconda差不多,就不赘述了
并且要把demo.ipynb转为demo.py
python -m IPython notebook
打开jupyter,进入你要转换的ipynb中
之后打开Pycharm,打开maskrcnn文件夹,然后要重新设置一下编译器,点文件菜单,设置
不要使用这个绿色的小圈,因为这个绿色的小圈代表使用Anaconda3自带的包,不是用的我们刚才下好的包
之后确定
作者电脑运行起来很卡,没办法
可能会遇到什么,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'
之后在运行,可能会出现tensorflow 内存不足:Process finished with exit code 137 (interrupted by signal 9: SIGKILL),因为虚拟机分配内存比较少,解决方案有两个,一个是BATCH_SIZE=1,批量改小,不过本来代码里都已经是1了,所以增大虚拟机的内存,从2G变成了4G
最后在运行一下
demo顺利展示