ubuntu16.04+cuda8.0+pycharm+tensorflow环境配置
本文为原创作品,未经本人同意,禁止转载,禁止用于商业用途!本人对博客使用拥有最终解释权
1.安装Nvidia显卡驱动
通过sudo lshw -numeric -C display可以查看显卡信息
通过ubuntu-drivers devices可以查看推荐使用的驱动
通过sudo apt-get install nvidia -xxx来下载驱动(xxx是你查询到的版本号,只要整数就行,比如我就是375)
安装完成之后,重启电脑,然后搜索Nvidia,如果出现 NVIDIA X Server Settings,就说明安装驱动成功了。
接下来就是安装cuda8了。
2.安装cuda8.0
这里因为我使用的是ubuntu16.04,所以选择安装cuda8.0。在官网下载:https://developer.nvidia.com/cuda-downloads在terminal输入nvidia-smi,如果出现下面情况说明安装成功了:(nvidia-smi中间没空格)
3.安装cuDNN
cuda/include/cudnn.h
cuda/lib64/libcudnn.so
cuda/lib64/libcudnn.so.5
cuda/lib64/libcudnn.so.5.1.5
cuda/lib64/libcudnn_static.a
通过命令来将相应的文件拷贝到对应的cuda目录下即可
sudo cp cuda/include/cudnn.h /usr/local/cuda/include/
sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64/
sudo chmod a+r /usr/local/cuda/lib
sudo chmod a+r /usr/local/cuda/lib64/libcudnn*
前面两个命令是复制 后面是改变文件权限 文件名加*号表明是带有该名字的所有文件。
4.安装opencv
先安装opencv3.1,防止之后用到。在官网下载3.1版本,然后安装相关的依赖项
首先安装Ubuntu系统需要的依赖项,也是看一个博客说要装,也不知道要干嘛。
sudo apt-get install --assume-yes libopencv-dev build-essential cmake git libgtk2.0-dev pkg-config python-dev python-numpy libdc1394-22 libdc1394-22-dev libjpeg-dev libpng12-dev libtiff5-dev libjasper-dev libavcodec-dev libavformat-dev libswscale-dev libxine2-dev libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev libv4l-dev libtbb-dev libqt4-dev libfaac-dev libmp3lame-dev libopencore-amrnb-dev libopencore-amrwb-dev libtheora-dev libvorbis-dev libxvidcore-dev x264 v4l-utils unzip
然后安装OpenCV需要的一些依赖项,同样不知道要干嘛。
sudo apt-get install build-essential cmake git
sudo apt-get install ffmpeg libopencv-dev libgtk-3-dev python-numpy python3-numpy libdc1394-22 libdc1394-22-dev libjpeg-dev libpng12-dev libtiff5-dev libjasper-dev libavcodec-dev libavformat-dev libswscale-dev libxine2-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libv4l-dev libtbb-dev qtbase5-dev libfaac-dev libmp3lame-dev libopencore-amrnb-dev libopencore-amrwb-dev libtheora-dev libvorbis-dev libxvidcore-dev x264 v4l-utils unzip
然后在文件夹下建立build文件夹
mkdir build
cd build/
输入:cmake -D CMAKE_BUILD_TYPE=RELEASE -DCMAKE_INSTALL_PREFIX=/usr/local -D WITH_TBB=ON -D WITH_V4L=ON -D WITH_QT=ON -DWITH_OPENGL=ON -DCUDA_NVCC_FLAGS="-D_FORCE_INLINES" ..(两个点别忘了)
配置好之后就是这样:
然后make编译就可以了
make -j8
然后报了这样的错误
home/usrname/opencv-3.1.0/modules/cudalegacy/src/graphcuts.cpp:120:54:error: 'NppiGraphcutState' has not been declared
typedef NppStatus(*init_func_t)(NppiSize oSize, NppiGraphcutState** ppStat
这是由于CUDA 8.0不支持OpenCV的 GraphCut 算法,
进入opencv-3.1.0/modules/cudalegacy/src/目录,修改graphcuts.cpp文件,将:
#include"precomp.hpp"
#if !defined(HAVE_CUDA) || defined (CUDA_DISABLER)
改为
#include"precomp.hpp"
#if !defined(HAVE_CUDA) || defined (CUDA_DISABLER) || (CUDART_VERSION >= 8000)
就可以了。
上面只是将opencv编译成功,但是并没有安装到我们的系统中,有很多的设置都没有写入到系统中,因此还要进行install。
sudo make install
sudo /bin/bash -c 'echo"/usr/local/lib" > /etc/ld.so.conf.d/opencv.conf'
sudo ldconfig
这一步遇到了这个问题:
这个问题Google之后,因为libEGL.so.1正常情况下应该是一个符号链接,而不是实体文集件,修改其为符号链接即可
解决方法,比如:
sudo mv libEGL.so.1 libEGL.1.so
sudo ln -s libEGL.1.so libEGL.so.1
注意这里有两个link不对,所以要改2个地方!根据自己的文件名来改
这样就ok了。
sudo apt-get installcheckinstall
sudo checkinstall
5.下载Anaconda
在Python2.7版本下,有一个x86,有一个power8,我们是Intel处理器,选择x86。
cd ~/Downloads
bash Anaconda-4.2.0-Linux-x86_64.sh
询问是否添加到环境变量中选择yes就行。
这样就安装完成了。6.安装tensorflow
#下面这句话只能下载给CPU用的tensorflow
conda install -cconda-forge tensorflow
利用pip来下载给GPU用的tensorflow
exportTF_BINARY_URL=https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow-0.11.0-cp27-none-linux_x86_64.whl
下载安装 pip install --ignore-installed --upgrade $TF_BINARY_URL输入:sudo cp/usr/local/cuda-8.0/lib64/libcudart.so.8.0 /usr/local/lib/libcudart.so.8.0&& sudo ldconfig
结果还是报错 ,猜测cuda出了问题。
应该是环境变量出了问题,在bashrc后面加上这两行:
exportLD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/cuda/lib64:/usr/local/cuda/extras/CUPTI/lib64"
export CUDA_HOME=/usr/local/cuda
重启电脑,然后再次导入,运行成功。7.安装pycharm
安装pycharm
pycharm是目前使用最多的Python IDE,界面简洁美观 安装简单。
cd到安装目录,然后解压缩再打开pycharm.sh所在的文件所在目录,然后安装它
使用: ./pycharm.sh
然后弹出这个:
选择不导入,按顺序安装。
安装成功后在pycharm导入pycharm报错:
需要配置project interpreter 到tensorflow所在位置:
至此大功告成啦!运行一段代码试试~
参考文章:Ubuntu16.04 +cuda8.0+cudnn+caffe+theano+tensorflow配置明细