ubuntu16.04+cuda8.0+pycharm+tensorflow环境配置

本文为原创作品,未经本人同意,禁止转载,禁止用于商业用途!本人对博客使用拥有最终解释权

之前都是在caffe框架学习深度学习,这次准备上手tensorflow,因为服务器还没陪好,所以先在笔记本上进行环境配置。

电脑为Lenovo Thinkpad S3 Yoga,显卡为GeForce 940。

 

【代码均已标红】

1.安装Nvidia显卡驱动

在此之前可以先安装一个pip:sudo apt-get install python-pip python-dev

 

先在Nvidia官网上根据你的电脑信息查看所需显卡驱动的版本:http://www.nvidia.com/Download/index.aspx?lang=en-us

比如这里我推荐的就是Nvidia-375.66

然后下载就行。

其实也可以在terminal里面通过命令来查看:

通过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

这里installer Type记得选择runfile,deb版本安装较为麻烦,并且会默认帮你下载OpenGL。

ps:如果你需要7.5版本,在主页右上角搜索就行了。

下载完成之后输入:

sudo sh cuda8.0.61_375.26_linux.run --override

然后就进入安装过程,开始都是End User License Agreement,你可以CTRL +C 跳过,然后accept,下面就是安装的交互界面,开始的Install NVIDIA Accelerated Graphics Driver for Linux?选择n,因为你已经安装驱动了。其他的选择y或者回车就行。

这个地方注意!我看过有的博客说一定不能手动安装Nvidia驱动,要安装他版本自动匹配的Nvidia驱动,否则会造成版本不匹配问题,但我当时已经安装了,然后感觉版本差不多我就没有管他,目前来看还没出问题。

 

安装完成后配置cuda环境变量:

通过gedit ~./bashrc 或者vi ~./bashrc在文件bashrc后加上声明:

export PATH="$PATH:/usr/local/cuda-8.0/bin"

export LD_LIBRARY_PATH="/usr/local/cuda.8.0/lib64"

(这两个的区别是前者是弹出一个编辑器来进行编辑,后者是直接在terminal编辑,所以后者要通过source ~./bashrc保存)

 

在terminal输入nvidia-smi,如果出现下面情况说明安装成功了:(nvidia-smi中间没空格)

 

3.安装cuDNN

接着安装学习库cuDNN。

下载cudnn5.1 Linux版本。在Nvidia官网下载:https://developer.nvidia.com/cudnn 

 

需要你先免费注册一个Nvidia账号才能下载。我当时注册的时候邮箱验证一直有延迟,换了好几个包括gmail也需要等一天,但有些人一小时就能收到,可能是随机的吧。

 

先解压cuDNN:tar xvzf cudnn-8.0-linux-x64-v5.1.tgz 

 

得到5个文件:

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了。

再次重启电脑,打开刚才的build文件夹,安装一个checkinstall:

sudo apt-get installcheckinstall

sudo checkinstall 

 

这是为了以后如果要更换opencv版本,可以更方便的卸载opencv,执行了checkinstall后,会在build文件下生成一个以backup开头的.tgz的备份文件和一个以build开头的.deb安装文件,当你想卸载当前的opencv时,直接执行dpkg -r build即可。

 

5.下载Anaconda

Anaconda是一个和Canopy类似的科学计算环境,但用起来更加方便。自带的包管理器conda也很强大。

从Anaconda官网(https://www.continuum.io/downloads)上根据自己需要的python版本下载Linux版本的Anaconda。

在Python2.7版本下,有一个x86,有一个power8,我们是Intel处理器,选择x86。

cd ~/Downloads

bash Anaconda-4.2.0-Linux-x86_64.sh

 

询问是否添加到环境变量中选择yes就行。

这样就安装完成了。

通过查询python版本可以确认是否安装成功。

 

6.安装tensorflow

先建立tensorflow运行环境:

$ conda create -n tensorflow python=2.7  (跟你的python版本有关)

source activate 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 

然后进入python试验一下:

import tensorflow as tf

然后报错:

 

输入: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

在官网下载Linux版本的pycharm:http://www.jetbrains.com/pycharm/download/#section=linux

安装pycharm

pycharm是目前使用最多的Python IDE,界面简洁美观 安装简单。

cd到安装目录,然后解压缩再打开pycharm.sh所在的文件所在目录,然后安装它

使用: ./pycharm.sh

然后弹出这个:

选择不导入,按顺序安装。

安装成功后在pycharm导入pycharm报错:

需要配置project interpreter 到tensorflow所在位置:

 

至此大功告成啦!运行一段代码试试~

 

 

参考文章:Ubuntu16.04 +cuda8.0+cudnn+caffe+theano+tensorflow配置明细

 

 

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值