又到了搭环境的时候了,先让我趴一会…
因为要跑论文代码啊,readme给出的依赖项如下所示:
这里比较关键的就是python2.7(因为ubuntu18.04只自带python3,没有python2,所以2要自己安装)以及tensorflow。另外,在跑代码的过程中发现有几个个依赖项这里没有列出,分别是opencv,panda还有scipy.
panda用下面语句安装即可,注意要在安装完pip2之后安装(请看安装python2部分):
pip install pandas
其他的库,比如numpy等用这个指令也可以安装,PIL注意一下包名是“pillow”, os模块是python内置模块,不需要安装
安装python2以及对应版本的pip用下面两个语句就ok。
sudo apt install python
sudo apt install python-pip
这里为了使用GPU的优良性能,这里我安装tensorflow-gpu版本的,论文代码readme中要求tensorflow1.2版本,不过只要是1.几的版本都是向后兼容的,当前最新的稳定版就是1.10了,所以,果断安装这个版本。安装之前要先确保安装计算机有支持cuda的显卡以及显卡驱动已经安装。
tensorflow1.10的配套cuda是9.0,cudnn就去官网下载相应的版本就ok,下面是安装步骤
首先确保自己电脑的显卡支持cuda,用下面命令查看显卡型号:
lspci | grep -i nvidia
上图是为计算机终端输出的结果,像我的显卡型号就是GeForce GTX 1050 Ti。
有了型号时候到nvidia官网查询,CUDA-Enabled Products列表中有的都可以喽~
驱动安装过程参考我的另一篇文章:ubuntu下安装NVIDIA显卡:问题解决记录
去官网下载啦,这里我没有放链接(后面可能会加上),麻烦看管百度或者google一下呦~
选上面这些选项,我下载的文件名是cuda_9.0.176_384.81_linux.run,放在~也就是home目录下。
进入该目录运行下面命令:
sudo chmod +x cuda_9.0.176_384.81_linux.run
sudo ./cuda_8.0.61_375.26_linux.run
安装cuda的时候有可能会遇到报错:cuda:Missing recommended library: libGLU.so,libX11.so,libXi.so,libXmu.so
参考文末第二条
接下来要选择一些选项:
这里注意Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 384.81?要选n
因为显卡驱动已经安装过了这里不能安装。
Do you want to install a symbolic link at /usr/local/cuda?这个也选n
因为后面,或许为会安装其他的cuda版本。其他是y或者默认就ok了。
Do you want to install a symbolic link at /usr/local/cuda?
(y)es/(n)o/(q)uit: n Do you accept the previously read EULA?
accept/decline/quit: accept
Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 384.81?
(y)es/(n)o/(q)uit: n
Do you wish to run the installation with 'sudo'?
(y)es/(n)o: y
Please enter your password:
Do you want to install the OpenGL libraries?
(y)es/(n)o/(q)uit [ default is yes ]:
Do you want to run nvidia-xconfig?
This will update the system X configuration file so that the NVIDIA X driver
is used. The pre-existing X configuration file will be backed up.
This option should not be used on systems that require a custom
X configuration, such as systems with multiple GPU vendors.
(y)es/(n)o/(q)uit [ default is no ]:
Install the CUDA 9.0 Toolkit?
(y)es/(n)o/(q)uit: y
Enter Toolkit Location
[ default is /usr/local/cuda-9.0 ]:
Do you want to install a symbolic link at /usr/local/cuda?
(y)es/(n)o/(q)uit: n
Install the CUDA 9.0 Samples?
(y)es/(n)o/(q)uit: y
Enter CUDA Samples Location
[ default is /home/linlf ]: /home/linlf/tools/cuda9.0
---------------------
本文来自 七爷OK 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/weixin_32820767/article/details/80421913?utm_source=copy
sudo gedit ~/.bashrc
在文件最后添加以下两行:
export PATH=/usr/local/cuda-9.0/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64:$LD_LIBRARY_PATH
保存文件,接着执行如下命令使路径生效:
. ~/.bashrc
nvcc -V
去NVIDIA官网下载
选择Library for Linux得到一个tgz文件,我下载的文件的名字是cudnn-9.0-linux-x64-v7.1.tgz
tar -xzvf cudnn-9.0-linux-x64-v7.1.tgz
sudo cp cuda/include/cudnn.h /usr/local/cuda-9.0/include
sudo cp cuda/lib64/libcudnn* /usr/local/cuda-9.0/lib64
sudo chmod a+r /usr/local/cuda-9.0/include/cudnn.h /usr/local/cuda-9.0/lib64/libcudnn*
ok了就~
保险起见,还是执行以下下面命令,确保有pip
sudo apt-get install python-pip python-dev
接着执行下面命令,安装1.10.1版本的tensorflow-gpu,下面等号后的版本如果是一个不存在的版本号,比如55,终端会看到tensorflow-gpu目前已有的版本号。
pip install tensorflow-gpu==1.10.1
tensorflow-gpu目前有以下版本:
0.12.0rc0, 0.12.0rc1, 0.12.0, 0.12.1, 1.0.0, 1.0.1, 1.1.0rc0, 1.1.0rc1, 1.1.0rc2, 1.1.0, 1.2.0rc0, 1.2.0rc1, 1.2.0rc2, 1.2.0, 1.2.1, 1.3.0rc0, 1.3.0rc1, 1.3.0rc2, 1.3.0, 1.4.0rc0, 1.4.0rc1, 1.4.0, 1.4.1, 1.5.0rc0, 1.5.0rc1, 1.5.0, 1.5.1, 1.6.0rc0, 1.6.0rc1, 1.6.0, 1.7.0rc0, 1.7.0rc1, 1.7.0, 1.7.1, 1.8.0rc0, 1.8.0rc1, 1.8.0, 1.9.0rc0, 1.9.0rc1, 1.9.0rc2, 1.9.0, 1.10.0rc0, 1.10.0rc1, 1.10.0, 1.10.1, 1.11.0rc0, 1.11.0rc1, 1.11.0rc2
如果你只想安装python版本opencv,可以不用编译,执行以下命令就行(如果提示缺包,可以参考下文依赖项,不过我在anaconda环境下直接安装没有问题。):
pip install opencv-python
然后后面是通过编译安装opencv,如果只安装python版本(编译的话,配置好可以c++也可以用)就可以跳过了。
从这里下载,如下图,下载opencv-3.2.0.zip,这是目前(17年6月)的最新版,读者看这篇文章的时候可能有更新.
在安装之前,我们要先安装一些从这里下载,如下图,下载opencv-3.2.0.zip,这是目前(17年6月)的最新版,读者看这篇文章的时候可能有更新.
在安装之前,我们要先安装一些依赖包,命令行输入下面命令:
sudo apt-get install build-essential
sudo apt-get install libgtk2.0-dev libavcodec-dev libavformat-dev libtiff5-dev libswscale-dev libjasper-dev
好了,现在把下载的zip解压,我解压到home路径下的.
命令行输入已下命令进行安装
1.进入opencv解压的目录,对于解压到home路径,就是cd opencv-3.2.0/
2.新建文件夹,用于存放编译文件
mkdir release
3.进入文件夹并配置
cd release
或许需要安装cmake
sudo apt install cmake
接着就是配置:
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CUDA_GENERATION=Kepler CMAKE_INSTALL_PREFIX=/usr/local ..
由于我安装的是cuda9.0,9.0与opencv3.2有一些兼容问题。在用cmake配置的时候会出现一堆问题。xox
参考这里,我就不粘贴过来了哈。
简单说一下要找的文件的目录,这里我的opencv是放在home下的:
文件 | 目录 |
---|---|
FindCUDA.cmake | ~/opencv-3.2.0/cmake |
OpenCVDetectCUDA.cmake | ~/opencv-3.2.0/cmake |
对于OpenCVDetectCUDA.cmake文件,参考另一篇
set(__cuda_arch_bin "2.0 3.0 3.5 3.7 5.0 5.2 6.0 6.1")
去掉2.0
按照上面参考改完相关文件之后再重新cmake就行。
make
下面是可能会遇到的错误,解决之后重新make就ok。
可以用gcc --verison 查看本机的gcc,我当时的版本是7.几,但是报错说gcc版本不能超过6,那就卸载之前的,重新安装6.如果提示不行,先进入symbolic link所在的位置/usr/bin再试
sudo apt-get auto-remove gcc
sudo apt-get install gcc-6
sudo apt-get install g++-6
sudo ln -s g++-6 g++
最后一句是给g+±6添加链接,让输入g++直接能找到g+±6
如下图所示:
参考ubuntu下安装opencv,cuda9.0下文末。
找到文件opencv-3.2.0/modules/core/include/opencv2/core/cuda/vec_math.hpp
对vec_math.hpp做如下修改(把203行和205行的 ::abs 也注释掉):
CV_CUDEV_IMPLEMENT_VEC_UNARY_FUNC(abs, /*::abs*/, uchar, uchar)
CV_CUDEV_IMPLEMENT_VEC_UNARY_FUNC(abs, ::abs, char, char)
CV_CUDEV_IMPLEMENT_VEC_UNARY_FUNC(abs, /*::abs*/, ushort, ushort)
CV_CUDEV_IMPLEMENT_VEC_UNARY_FUNC(abs, ::abs, short, short)
改为
CV_CUDEV_IMPLEMENT_VEC_UNARY_FUNC(abs, /*::abs*/, uchar, uchar)
CV_CUDEV_IMPLEMENT_VEC_UNARY_FUNC(abs, /*::abs*/, char, char)
CV_CUDEV_IMPLEMENT_VEC_UNARY_FUNC(abs, /*::abs*/, ushort, ushort)
CV_CUDEV_IMPLEMENT_VEC_UNARY_FUNC(abs, /*::abs*/, short, short)
sudo make install
至此opencv安装完毕.
这里我在安装的时候opencv的编译过程比较慢,本人电脑大概用了1个小时.
python
import cv2
直接进python环境,import一下即可
tensorflow-gpu的安装主要是第4和第5两个参考。
opencv的安装参考为6以后。