Ubuntu安装TensorFlow过程

该过程包含了装GCC、CUDA、CuDNN、Anaconda、TensorFlow的过程。
首先了解下,装完Ubuntu之后,需要进行的几个步骤:
1、修改root密码
首先,在shell中输入sudo su,接着输入root的密码,进入了终端的root权限了。
输入sudo passwd输入一次旧密码,两次新密码,就可以成功修改旧密码了。
在root用户下做完需要root权限的操作后,用exit/logout命令,或Ctrl+D退出root用户,返回到当前登陆用户。

2、修改IP地址
sudo vi /etc/network/interfaces修改IP地址,IP地址前的关键字改成static,否则IP地址并不固定。然后sudo reboot。

3、配置代理
sudo vi /etc/apt/apt.conf,设置http(s)_proxy=http://xxx.xxx.xxx.xxx:xxx, 用于穿透网关。

4、更新source.list
sudo apt-get update(注意后面不跟安装包了),更新完后,就可以用sudo apt-get install xxx安装新的软件包了。

5、挂载硬盘
sudo fdisk -l
sudo fdisk /dev/sdb p/n/w
sudo mkfs -t ext4 /dev/sdb/
sudo e2label /dev/sdb/ /data
sudo mkdir /data
sudo vi /etc/fstab,修改LABEL=/data /data ext4 defaults 0 2
sudo reboot

6、安装GCC
sudo apt-get install gcc
sudo apt-get install g++
sudo apt-get update
sudo apt-get upgrade -y
sudo apt-get dist-upgrade
sudo apt-get install make

7、安装CUDA
下载安装文件cuda-8.0.xxx.sh
sudo sh cuda-8.0.xxx.sh
添加PATH、LD_LIBRARY_PATH:
vi ~/.bashrc
export PATH="/usr/local/cuda-8.0.xxx/bin:$PATH"
export LD_LIBRARY_PATH="/usr/local/cuda-8.0.xxx/lib64:$LD_LIBRARY_PATH"
export LD_LIBRARY_PATH="/usr/local/cuda-8.0.xxx/extras/CUPTI/lib64:$LD_LIBRARY_PATH"
source ~/.bashrc
nvcc -V (--version)验证nvidia-cuda-toolkit验证版本
安装完后,通过sudo nvidia-smi -pm 1或nvidia-smi来验证
而nvidia-smi pmon实时查看显卡sm、memory消耗情况
卸载cuda过程为:
cd /usr/local/cuda/bin
sudo ./uninstall_cuda_8.0.xxx.pl

8、安装CuDNN
官网下载安装文件cudnn-8.0-linux-x64-v5.1.tgz
tar -xzvf cudnn-8.0-linux-x64-v5.1.tgz
cd cudnn-8.0-linux-x64-v5.1
sudo cp ./include/cudnn.h /usr/local/cuda/include/
sudo cp ./lib64/libcudnn* /usr/local/cuda/lib64/
sudo ln -s libcudnn.so libcudnn.so
sudo ln -s libcudnn.so.5 libcudnn.so.5
sudo ln -s libcudnn.so.5.1.10 libcudnn.so.5.1.10
sudo ln -s libcudnn_static.a libcudnn_static.a
将/usr/local/cuda添加到/etc/ld.so.conf中,执行sudo ldconfig
PS:CuDNN是专门针对深度学习框架设计的一套GPU计算加速方案,支持的Deep Learning框架包括TensorFlow、Caffe、Torch、MXNet等。安装CuDNN的基本原理是把头文件cudnn.h添加到系统能找到的include文件夹里,把lib文件添加到系统能找到的lib文件夹里。

9、Anaconda安装
Anaconda整合了常用的python科学计算包,包括numpy、scipy、matplotlib等等。
官网http://continuum.io/downloads 下载安装文件,注意选择python版本对应的安装文件
bash Anaconda-x.x.x-linux-x86_64.sh,选择相应的目录进行安装
在询问是否把anaconda的bin添加到用户的环境变量中时,选择yes
source ~/.bashrc,使添加到.bashrc中的环境变量生效
conda list,可查看安装了哪些包
conda update conda
conda install accelerate
conda install iopro,安装其他的包
conda update matplotlib,更新安装的包
conda install numpy=2.1.0
conda update numpy=2.1.0,安装和更新指定版本的包
conda update numpy --no-update-dependencies,默认conda总是同时更新和包有关联的其他包(等价于--update-dependencies),--no-update-dependencies让conda不更新相关联的包
conda update --channel https://xxx.xxx.xxx.xxx/numpy.xxx, 来指定从哪个地址下载
conda install -c spyder-ide spyder=3.0.0,加-c表示从http://anaconda.org 下载资源包
下载或更新中间出错时,手动下载放到/Anaconda/pkgs里面,再重新更新。如果卡机,shell重新打开后,conda clean --lock,再重新运行安装或更新命令。

10、TensorFlow安装
官网下载安装文件tensorflow-xxx.xxx.xxx.whl, 根据需求选择CPU或GPU的版本。
pip install tensorflow-xxx.xxx.xxx.whl
安装完成后,python进入python环境

import tensorflow as tf
tf.version,查看安装的tensorflow版本
tf.path,查看tensorflow的安装目录
tf.Session(),查看CUDA、CuDNN是否安装正常

常见安装错误记录:
1)安装CUDA后,输入nvcc --version出现错误,则
sudo apt-get install nvidia-cuda-toolkit

2)安装完Anaconda后,输入conda,出现conda: command not found的错误,则
要把anaconda的PATH添加到.bashrc中,并且要source ~/.bashrc,即让添加的PATH即时生效。

3)出现“Import Error: libcublas.so.8.0: cannot open shared object file: No such file or directory”错误的时候,解决办法是将cuda-8.0下的一些文件复制到/usr/local/lib文件夹下:
sudo cp /usr/local/cuda-8.0/lib64/libcudart.so.8.0 /usr/local/lib/libcudart.so.8.0 && sudo ldconfig
sudo cp /usr/local/cuda-8.0/lib64/libcublas.so.8.0 /usr/local/lib/libcublas.so.8.0 && sudo ldconfig
sudo cp /usr/local/cuda-8.0/lib64/libcurand.so.8.0 /usr/local/lib/libcurand.so.8.0 && sudo ldconfig
sudo ldconfig

4)出现“Import Error: libcufft.so.8.0: cannot open shared object file: No such file or directory”错误的时候,解决办法是将cuda-8.0下的一些文件复制到/usr/local/lib文件夹下:
sudo cp /usr/local/cuda-8.0/lib64/libcufft.so.8.0 /usr/local/lib/libcufft.so.8.0 && sudo ldconfig
sudo ldconfig

5)出现“ImportError: /home/xxx/anaconda2/lib/python2.7/site-packages/tensorflow/python/_pywrap_tensorflow_internal.so: undefined symbol: cuDevicePrimaryCtxRetain”错误的时候,则
在安装CUDA时,
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 ]: no
这里要选no
sudo vi /etc/profile添加:
export LD_LIBRARY_PATH=/lib:/lib64:/usr/lib:/usr/lib64:/usr/local/lib:/usr/local/lib64
export PATH=/usr/local/cuda-8.0/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64:$LD_LIBRARY_PATH
source /etc/profile
sudo ldconfig

6)出现“ImportError: libcudnn.so.5: cannot open shared object file: No such file or directory”错误的时候,解决办法是安装cudnn-8.0的v5版本:
tar -xzvf cudnn-8.0-linux-x64-v5.1.tgz
cd cudnn-8.0-linux-x64-v5.1
sudo cp ./include/cudnn.h /usr/local/cuda/include/
sudo cp ./lib64/libcudnn* /usr/local/cuda/lib64/
sudo ln -s libcudnn.so libcudnn.so
sudo ln -s libcudnn.so.5 libcudnn.so.5
sudo ln -s libcudnn.so.5.1.10 libcudnn.so.5.1.10
sudo ln -s libcudnn_static.a libcudnn_static.a
将/usr/local/cuda添加到/etc/ld.so.conf中,执行sudo ldconfig。
如果是文件权限(ls -al)的问题,则要先删除软连接:
sudo rm -rf libcudnn.so libcudnn.so.5.1.10
修改文件权限,重新建立软连接:
sudo chmod u=rwx, g=rx, o=rx libcudnn.so.5.1.10
sudo ln -s xxx xxx

7)出现“
modprobe: ERROR: could not insert 'nvidia_340_uvm': Invalid argument
xxx: E tensorflow/stream_executor/cuda/cuda_driver.cc:405] failed call to cuInit: CUDA_ERROR_UNKNOWN
...
xxx: I tensorflow/stream_executor/cuda/cuda_diagnostics.cc:189]libcuda reported version is: 375.26.0
...”错误的时候,则
原因是有两个drivers,340和375,而用340并不兼容,所以卸载掉340。办法如下:
sudo apt-get remove nvidia-340

8)出现“Tensorflow ValueError: Tried to convert 'input' to a tensor and failed. Error: None values not supported.”错误的时候,则
是网络模型中定义的变量,在Forward-FeedBack里却没有,所以没有求导的结果,或者各个GPU上的变量长度不一致,导致有些变量没有求导的结果。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,117评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,328评论 1 293
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,839评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,007评论 0 206
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,384评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,629评论 1 219
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,880评论 2 313
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,593评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,313评论 1 243
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,575评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,066评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,392评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,052评论 3 236
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,082评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,844评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,662评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,575评论 2 270

推荐阅读更多精彩内容