虽然官网已经写的很清楚了,但是自己安装的时候还是有坑,出现了好多错,特此记录
我是用的virtualenv
,按照官网的步骤来,先说明此步骤对你不一定成功:
<1> 安装pip
和virtualenv
环境
# Ubuntu/Linux 64-bit
$ sudo apt-get install python-pip python-dev python-virtualenv
<2>创建虚拟环境目录
$ virtualenv --system-site-packages ~/tensorflow
<3>激活虚拟环境
$ source ~/tensorflow/bin/activate # If using bash
$ source ~/tensorflow/bin/activate.csh # If using csh
(tensorflow)$ # Your prompt should change
<4>使用预编译好的安装包安装
最新要求cuda7.5
和cudnnV5
# Ubuntu/Linux 64-bit, GPU enabled, Python 2.7
# Requires CUDA toolkit 7.5 and CuDNN v5. For other versions, see "Install from sources" below.
(tensorflow)$ export TF_BINARY_URL=https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow-0.10.0-cp27-none-linux_x86_64.whl
# Python 2
(tensorflow)$ pip install --upgrade $TF_BINARY_URL
# Python 3
(tensorflow)$ pip3 install --upgrade $TF_BINARY_URL
官网的步骤就到此为止了,理论上你应该装好了
需要测试下:
按照此测试做,发现错了,具体是执行:
python -m tensorflow.models.image.mnist.convolutional
Loaded CuDNN library: 5005 (compatibility version 5000) but source was compiled with library 5103 (compatibility version 5100)
提示cudnn版本低
,这是第一个坑
后来我重新升级了cudnn
之后,再去测试,这次这个过了,但是又有其它错,具体是:
使用ipython导入tensorflow出错无法导入,但是python下可以直接导入
AttributeError: type object 'NewBase' has no attribute 'is_abstract'
这个官方有解决方法,具体见:
官方说是使用cuda7.5+cudnnV5
,实际是使用cuda7.5+cudnnV5.1
才行
所以升级到5.1版本的就没问题了
(1) 创建虚拟目录时候不要使用--system-site-packages
选项, 之后自己进去安装numpy,matplotlib,six
这三个包
尤其注意six
需要1.8.0以后的版本
(2) 升级到1.8.0之后的版本就没问题了
由于需要在本机(没有GPU环境)下进行本机调试,所以我在本机上安装了cpu
版本的tensorflow
,又出现了几个错,特此记录
Error 1
:
无法升级通过apt-get安装的软件
通过apt-get
安装的numpy
等,默认的位置在/usr/lib/python2.7
下,所以你要是使用sudo apt-get remove
,会告诉你xxxx owned by OS
解决方法: 直接进入/usr/lib下删除相应的软件文件即可,结果是pip会使用/usr/local/lib/python2.7下的软件(通过pip安装的)
Error 2
:
ImportError: numpy.core.multiarray failed to import
原因是: tensorflow需要的numpy
版本大于本机自带的numpy
版本
解决方法: 删除/usr/lib/python2.7下的numpy,使用pip进行安装numpy即可
sudo rm -fR /usr/lib/python2.7/numpy*
sudo pip install numpy
Error 3
:
ImportError: cannot import name symbol_database
解决方法: 升级protobuf
sudo apt-get remove python-protobuf
sudo pip uninstall protobuf
sudo pip install protobuf
此时在ipython下导入import tensorflow as tf
, 没有问题