Tensorflow在Anaconda环境下安装以及一些问题【转】

根据网上一些安装教程完成了自己电脑上Tensorflow的安装,同时安装时出现的一些问题。(用的是Ubuntu16.04)

一、安装显卡驱动
首先安装显卡驱动,先看自己的显卡。(网上看到的都需要安装显卡驱动,本人电脑更新过有这个驱动,就没必要再装)

1 lspci | grep -i vga
2 lspci | grep -i nvidia

然后看自己的显卡驱动

3 lsmod | grep -i nvidia

在ubuntu16.04中,更换驱动非常方便,去
系统设置->软件更新->附加驱动->切换到最新的NVIDIA驱动即可。应用更改->重启这里写图片描述
再运行 nvidia-smi 来看
这里写图片描述

二、安装CUDA
https://developer.nvidia.com/cuda-downloads,根据自己的系统下载对应安装包,下载的是runfile文件,而不是deb文件。下载好以后,运行

sudo sh ./cuda_8.0.44_linux.run
安装开始以后,首先是一个协议,一直按回车到底以后,输入accept。其他的操作如下所示
Do you accept the previously read EULA?
accept/decline/quit: accept

Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 367.48?
(y)es/(n)o/(q)uit: n

Install the CUDA 8.0 Toolkit?
(y)es/(n)o/(q)uit: y

Enter Toolkit Location
[ default is /usr/local/cuda-8.0 ]:

Do you want to install a symbolic link at /usr/local/cuda?
(y)es/(n)o/(q)uit: y

Install the CUDA 8.0 Samples?
(y)es/(n)o/(q)uit: y

下面是安装时的输出信息:

Installing the CUDA Toolkit in /usr/local/cuda-8.0 …
Installing the CUDA Samples in /home/textminer …
Copying samples to /home/textminer/NVIDIA_CUDA-8.0_Samples now…
Finished copying samples.

===========
= Summary =
===========

Driver: Not Selected
Toolkit: Installed in /usr/local/cuda-8.0
Samples: Installed in /home/textminer

Please make sure that
– PATH includes /usr/local/cuda-8.0/bin
– LD_LIBRARY_PATH includes /usr/local/cuda-8.0/lib64, or, add /usr/local/cuda-8.0/lib64 to /etc/ld.so.conf and run ldconfig as root

To uninstall the CUDA Toolkit, run the uninstall script in /usr/local/cuda-8.0/bin

Please see CUDA_Installation_Guide_Linux.pdf in /usr/local/cuda-8.0/doc/pdf for detailed information on setting up CUDA.

***WARNING: Incomplete installation! This installation did not install the CUDA Driver. A driver of version at least 361.00 is required for CUDA 8.0 functionality to work.
To install the driver using this installer, run the following command, replacing with the name of this run file:
sudo .run -silent -driver

Logfile is /tmp/cuda_install_6583.log

安装完毕后,再声明一下环境变量,并将其写入到 ~/.bashrc 的尾部:

export CUDA_HOME=/usr/local/cuda
export PATH=$PATH:$CUDA_HOME/bin
export LD_LIBRARY_PATH=/usr/local/cuda/lib64

保存退出,运行source ~/.bashrc

测试是否安装成功:

1 cd /usr/local/cuda/samples/1_Utilities/deviceQuery 
2 sudo make
3 ./deviceQuery

这里写图片描述


三、安装cuDNN
如果要使用gpu来对tensorflow进行加速,除了安装CUDA以外,cuDNN也是必须要安装的。跟cuda一样,去nvidia的官网下载cuDNN的安装包。不过这次没法直接下载,需要先注册,然后还要做个调查问卷什么的,稍微有点麻烦。我下的是cuDNN v5.1 Library for Linux这个版本。不要下cuDNN v5.1 Developer Library for Ubuntu16.04 Power8 (Deb)这个版本,因为是给powe8处理器用的,不是amd64.
下载下来以后,发现是一个tgz的压缩包,使用tar进行解压。

tar -xvf cudnn-8.0-linux-x64-v5.1.tgz
安装cuDNN比较简单,解压后把相应的文件拷贝到对应的CUDA目录下即可
1 sudo cp cuda/include/cudnn.h /usr/local/cuda/include/
2 sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64/
3 sudo chmod a+r /usr/local/cuda/include/cudnn.h
4 sudo chmod a+r /usr/local/cuda/lib64/libcudnn*

四、安装Tensorflow——GPU版
https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow_gpu-1.0.0rc0-cp36-cp36m-linux_x86_64.whl下载gpu版的tf(因为我自己装的Anaconda是Python3.6的)
建立一个 conda 计算环境名字叫tensorflow: 在终端输入一下命令即可,我这里是Python3.6版本

conda create -n tensorflow python=3.6 

激活tensorflow环境,继续在终端输入一下命令(所有的Tensorflow都需要在这个环境下写):
source activate tensorflow
然后是在这个环境下安装Tensorflow:

sudo pip install tensorflow_gpu-1.0.0rc0-cp36-cp36m-linux_x86_64.whl

其中tensorflow_gpu-1.0.0rc0-cp36-cp36m-linux_x86_64.whl是根据上面链接地址下载的zip包。
退出这个环境:
source deactivate

五、测试安装是否安装成功以及spyder的使用
我在测试安装是IPython环境(安装玩Anaconda是会自带IPython)的下写是没有成功的,但是在Python下import却是有用的,这个也不太清楚怎么回事,同时,安装完anaconda后anaconda会自带spyder这个IDE,但是我们在打开这个IDE输入import tensorflow会显示没有TensorFlow这个模块的错误,不对啊,明明我们已经安装了TensorFlow,而且在终端下也测试了没问题啊。这里我也查看了网上关于这个问题地许多教程,感觉都不太明朗,这里给出我不知在哪儿看到的解决方案:
之所以会出现这个问题大概是anaconda自带的spyder没有工作在tensorflow环境下的原因。想要在TensorFlow环境下使用spyder,那就在tensorflow环境下再安装一个spyder嘛。好,那我们开始安装。
在tensorflow环境下,在终端用conda安装spyder。输入一下命令:

conda install spyder
然后会看见安装目录位于我们之前建好的tensorflow环境下,也会看到安装spyder会安装许多依赖包,然后输入y,大概10分钟后就安装好了。这时我们在终端输入spyder打开spyder,在IPython console下输入import tensorflow,如果没有报错则表明安装成功了。

六、总结
注意每次要使用tensorflow时,一定要先在终端激活tensorflow环境:source activate tensorflow 然后输入spyder打开spyder,这里的这个spyder是tensorflow环境下的spyder,不使用tensorflow时使用以下命令关掉tensorflow环境source deactivate

七、遇到的问题
1 、现在一直都是用spyder来写,不过不知道为什么spyder中不能输入中文,coding=utf-8也是加了的,希望能有大神帮忙解答。
2、Eclipse-pydev中的问题,spyder用着不习惯想用pydev来写,虽然import没有问题,但是总是出现下面的问题:

W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use SSE3 instructions, but these are available on your machine and could speed up CPU computations.
W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use SSE4.1 instructions, but these are available on your machine and could speed up CPU computations.
W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use SSE4.2 instructions, but these are available on your machine and could speed up CPU computations.
W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use AVX instructions, but these are available on your machine and could speed up CPU computations.
I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:910] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
I tensorflow/core/common_runtime/gpu/gpu_device.cc:885] Found device 0 with properties: 
name: GeForce GT 650M
major: 3 minor: 0 memoryClockRate (GHz) 0.885
pciBusID 0000:01:00.0
Total memory: 1.95GiB
Free memory: 88.25MiB
I tensorflow/core/common_runtime/gpu/gpu_device.cc:906] DMA: 0 
I tensorflow/core/common_runtime/gpu/gpu_device.cc:916] 0:   Y 
I tensorflow/core/common_runtime/gpu/gpu_device.cc:975] Creating TensorFlow device (/gpu:0) -> (device: 0, name: GeForce GT 650M, pci bus id: 0000:01:00.0)
E tensorflow/stream_executor/cuda/cuda_driver.cc:1002] failed to allocate 88.25M (92536832 bytes) from device: CUDA_ERROR_OUT_OF_MEMORY
F tensorflow/stream_executor/cuda/cuda_blas.cc:268] Check failed: s.ok() could not find cublasCreate_v2 in cuBLAS DSO; dlerror: /home/hyotei/anaconda3/envs/tensorflow/lib/python3.6/site-packages/tensorflow/python/_pywrap_tensorflow.so: undefined symbol: cublasCreate_v2

3、用spyder写程序时,发现无法import sklearn/scipy 这两个包,然后去anaconda/envs/tensorflow/lib/python3.6/site-pakages下发现并没有这两个包。或者想要查看是否存在这个包,在tensorflow环境下输入:conda list -n tensorflow 查看

如果没有解决办法(都是在tensorflow环境下):
1 安装anacoda 下所有的包:conda install anaconda
2 安装指定的包conda install -n env_name sklearn scipy

八、参考
1 ubuntu16.04下安装CUDA cuDNN及tensorflow-gpu版本过程 http://www.2cto.com/kf/201612/578337.html
2 使用conda管理python环境
https://zhuanlan.zhihu.com/p/22678445
3 Ubuntu16.04下安装Anaconda,tensorflow以及解决spyder中无法import tensorflow问题
http://blog.csdn.net/colourful_sky/article/details/73823939

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值