准备动作
量化并转换Caffe模型前,请先完成如下环境准备动作,然后安装模型小型化工具。
模型小型化工具用户准备
支持任意用户(root或者非root)安装模型小型化工具,本章节以非root用户为例进行操作。
- 若使用root用户安装,则不需要操作该章节,不需要对root用户做任何设置。
- 若使用已存在的非root用户安装,须保证该用户对$HOME目录具有读写以及可执行权限。
- 若使用新的非root用户安装,请参考如下步骤进行创建,如下操作请在root用户下执行。本手册以该种场景为例执行模型小型化工具的安装。
- 执行以下命令创建模型小型化工具安装用户并设置该用户的$HOME目录。
useradd -d /home/username -m username
- 执行以下命令设置密码。
passwd username
username为安装模型小型化工具的用户名,该用户的umask值不能大于0027:- 若要查看umask的值,则执行命令:umask
- 若要修改umask的值,则执行命令:umask 新的取值
- 执行以下命令创建模型小型化工具安装用户并设置该用户的$HOME目录。
配置模型小型化工具安装用户权限(可选)
当用户使用非root用户安装时,需要操作该章节,否则请忽略。
- 打开“/etc/sudoers”文件:
chmod u+w /etc/sudoers vi /etc/sudoers
- 在该文件“# User privilege specification”下面增加如下内容:
username ALL=(ALL:ALL) NOPASSWD:SETENV:/usr/bin/apt-get,/usr/bin/pip, /bin/tar, /bin/mkdir, /bin/rm, /bin/sh, /bin/cp, /bin/bash, /usr/bin/make, /usr/bin/pip3, /usr/bin/pip3.7, /usr/bin/pip3.7.5, /bin/ln, /bin/mv
“username”为执行安装脚本的非root用户名。
请确保“/etc/sudoers”文件的最后一行为“#includedir /etc/sudoers.d”,如果没有该信息,请手动添加。
- 添加完成后,执行:wq!保存文件。
- 执行以下命令取消“/etc/sudoers”文件的写权限:
chmod u-w /etc/sudoers
环境准备
类别 |
版本限制 |
获取方式 |
注意事项 |
---|---|---|---|
操作系统 |
18.04 64位Ubuntu操作系统 |
请从http://old-releases.ubuntu.com/releases/网站下载对应版本软件进行安装,例如可以下载Server版:ubuntu-18.04-server-amd64.iso。 |
- |
Python |
3.7.5 |
请参见 安装依赖。 |
- |
Caffe |
caffe-master分支 当前仅支持commit id为9b891540183ddc834a02b2bd81b31afae71b2153的版本 |
请参考Caffe官方指导准备Caffe环境:https://github.com/BVLC/caffe/tree/master。 推荐使用源码方式安装Caffe环境,如果使用命令行方式安装,出现类似"/usr/bin/python3.7: can't open file '/usr/lib/python3.7/py_compile.py': [Error 2] No such file or directory"信息时,请参见使用命令行方式安装Caffe环境失败解决。 |
- |
CUDA toolkit/ CUDA driver |
10.0 |
请用户自行获取相关软件包进行安装,例如可以参见如下链接获取相关toolkit包,该包中包括driver软件包。 |
- |
numpy |
1.16.0 |
请参见 安装依赖。 |
- |
opencv-python |
4.1.0.25+ |
请参见 安装依赖。 |
- |
Pillow |
6.0.0 |
请参见 安装依赖。 |
Pillow7.0.0版本不支持jpeg格式,仅Pillow 6.0.0版本支持。 |
wget |
3.2+ |
请参见 安装依赖。 |
- |
protobuf |
3.11.0+ |
请参见 安装依赖。 |
- |
安装依赖
- 安装系统依赖库以及编译环境。
分别使用如下命令检查是否安装python依赖软件以及检测网络依赖的2to3软件等。
dpkg -l libssl-dev| grep libssl-dev| grep i dpkg -l build-essential| grep build-essential| grep i dpkg -l 2to3| grep 2to3| grep ii dpkg -l python3-tk| grep python3-tk| grep ii
若分别返回如下信息则说明已经安装:
ii libssl-dev:amd64 1.0.2g-1ubuntu4.15 amd64 Secure Sockets Layer toolkit - development files ii build-essential 12.1ubuntu2 amd64 Informational list of build-essential packages 2to3 3.6.7-1~18.04 all 2to3 binary using python3 ii python3-tk:amd64 3.6.9-1~18.04 amd64 Tkinter - Writing Tk applications with Python 3.x
否则请执行如下安装命令,(如果只有部分软件未安装,则如下命令修改为只安装还未安装的软件即可):sudo apt-get install -y libssl-dev build-essential 2to3 python3-tk
如果安装python3-tk失败,请参见安装python3-tk时提示错误信息解决。
- 检查系统是否安装python3.7.5开发环境。
分别使用命令python3.7.5 --version、pip3.7.5 --version检查是否已经安装,如果返回如下信息则说明已经安装。
Python 3.7.5 pip 19.2.3 from /usr/local/python3.7.5/lib/python3.7/site-packages/pip (python 3.7)
否则请根据如下方式安装python3.7.5。
- 使用wget下载python3.7.5源码包,可以下载到模型小型化工具所在服务器任意目录,命令为:
wget https://www.python.org/ftp/python/3.7.5/Python-3.7.5.tgz
- 进入下载后的目录,解压源码包,命令为:
tar -zxvf Python-3.7.5.tgz
- 进入解压后的文件夹,执行配置、编译和安装命令:
cd Python-3.7.5 ./configure --prefix=/usr/local/python3.7.5 --enable-shared make sudo make install
其中“--prefix”参数用于指定python安装路径,用户根据实际情况进行修改。“--enable-shared”参数用于编译出libpython3.7m.so.1.0动态库。
本手册以--prefix=/usr/local/python3.7.5路径为例进行说明。执行配置、编译和安装命令后,安装包在/usr/local/python3.7.5路径,libpython3.7m.so.1.0动态库在/usr/local/python3.7.5/lib/libpython3.7m.so.1.0路径。
- 查询/usr/lib64或/usr/lib下是否有libpython3.7m.so.1.0,若有则跳过此步骤或将原有文件备份后执行如下命令:
如果环境上没有/usr/lib64,则复制到/usr/lib目录:
sudo cp /usr/local/python3.7.5/lib/libpython3.7m.so.1.0 /usr/lib
libpython3.7m.so.1.0文件所在路径请根据实际情况进行替换。
- 执行如下命令设置软链接:
sudo ln -s /usr/local/python3.7.5/bin/python3 /usr/bin/python3.7.5 sudo ln -s /usr/local/python3.7.5/bin/pip3 /usr/bin/pip3.7.5 sudo ln -s /usr/local/python3.7.5/bin/python3 /usr/bin/python3.7 sudo ln -s /usr/local/python3.7.5/bin/pip3 /usr/bin/pip3.7
执行上述软链接时如果提示链接已经存在,则可以先执行如下命令删除原有链接然后重新执行。
sudo rm -rf /usr/bin/python3.7.5 sudo rm -rf /usr/bin/pip3.7.5 sudo rm -rf /usr/bin/python3.7 sudo rm -rf /usr/bin/pip3.7
- 安装完成之后,执行如下命令查看安装版本,如果返回相关版本信息,则说明安装成功。
python3.7.5 --version pip3.7.5 --version
- 使用wget下载python3.7.5源码包,可以下载到模型小型化工具所在服务器任意目录,命令为:
- 检查系统是否安装numpy以及scikit-image等依赖软件。
分类网络依赖numpy、scikit-image、opencv-python、lmdb;检测网络依赖opencv-python、Cython、matplotlib、easydict 、PyYAML、Pillow、pycocotools、cython;LSTM_MNIST依赖numpy、opencv-python、wget;模型小型化工具依赖protobuf。
使用命令pip3.7.5 list检查是否安安装相应版本的软件,若未安装或安装版本过低,则请执行如下命令。
pip3.7.5 install numpy==1.16.0 --user pip3.7.5 install scikit-image --user pip3.7.5 install opencv-python --user pip3.7.5 install lmdb --user pip3.7.5 install Cython --user pip3.7.5 install matplotlib --user pip3.7.5 install easydict --user pip3.7.5 install PyYAML --user pip3.7.5 install Pillow==6.0.0 --user pip3.7.5 install wget --user pip3.7.5 install protobuf==3.11.0 --user pip3.7.5 install cython --user pip3.7.5 install pycocotools --user
模型小型化工具软件包准备
以模型小型化工具的安装用户将mini_toolchain_amct.rar软件包上传到Linux服务器任意目录下,本示例为上传到$HOME/amct/目录。
执行如下命令解压模型小型化工具软件包,其中{software version}表示软件包具体版本号。
unzip mini_toolchain_amct.rar
获得如下内容:
- 模型小型化工具安装包:amct_caffe-{version}-py3-none-linux_x86_64.whl
version代表具体版本号。
- 分类网络以及检测网络量化sample包:amct_caffe_sample.tar.gz
- Caffe源代码增强包:caffe_patch.tar.gz
