為了熟悉tensorflow,我采用從源碼安裝,期間也熟悉了linux下的一些知識,解決了一些問題,記錄如下:
版本:
- tensorflow:0.9.0 (GitHub: tensorflow)
- Ubuntu:14.04 64位(32位不可以,親測有效)
安裝:
Tensorflow(簡易安裝步驟)
接下來,就可以按照Tensorflow Download and Setup中的Pip Installation
開始安裝,命令如下:
# Ubuntu/Linux 64-bit, CPU only: $ sudo pip install --upgrade https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-0.8.0-cp27-none-linux_x86_64.whl # Ubuntu/Linux 64-bit, GPU enabled. Requires CUDA toolkit 7.5 and CuDNN v4. For # other versions, see "Install from sources" below. $ sudo pip install --upgrade https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow-0.8.0-cp27-none-linux_x86_64.whl
csdn(推薦安裝步驟):
http://blog.csdn.net/forest_world/article/details/51306432
官網安裝步驟:
www.tensorflow.org/ (有點混亂,建議使用csdn上步驟)
github版本:
https://github.com/tensorflow/tensorflow
編譯時錯誤(內存錯誤和包安裝版本不對)
編譯時:virtual memory exhausted: Cannot allocate memory
內存不足。
解決方法:http://blog.csdn.net/taiyang1987912/article/details/41695895
安裝完成后,就可以測試,是否安裝成功:
$ python >>> import tensorflow as tf >>>
如果輸入命令后,結果跟上述的差不多,(GPU版的會有一些log信息),沒有出現Error,那就說明安裝好了,就可以測試使用啦。
在tensorflow/tools/pip_package/setup.py中,關於幾個包(numpy
, six
, protobuf
)的版本等都有規定,如果不滿足,則編譯代碼就會報錯:
# tensorflow version _VERSION = '0.9.0' ... REQUIRED_PACKAGES = [ 'numpy >= %s' % numpy_version, 'six >= 1.10.0', 'protobuf == 3.0.0b2', ]
查看這些包的命令行是:
$ pip show numpy protobuf six
出問題比較多的是protobuf
和six pip
包,例如:
Pip
如果已經安裝過pip
,可以跳過這里的安裝步驟。
$ sudo apt-get install python-pip python-dev python-setuptools build-essential $ sudo pip install --upgrade pip $ sudo pip install --upgrade virtualenv
為了檢測是否安裝好,可以查看pip
的版本:
$ pip --version pip 8.1.1 from /usr/local/lib/python2.7/dist-packages (python 2.7)
protobuf
from google.protobuf import symbol_database as _symbol_database ImportError: cannot import name symbol_database
protobuf
如果已經安裝了其他版本(例如python-protobuf或低版本),先要卸載掉:
$ sudo apt-get remove python-protobuf $ sudo pip uninstall protobuf
然后安裝:
$ sudo pip install --upgrade protobuf
six
AttributeError: type object 'NewBase' has no attribute 'is_abstract'
出現這個問題,應該是six
包安裝有問題,可以卸載原有版本,重新安裝:
$ sudo pip uninstall six $ sudo pip install six --upgrade
一般來說six
包的安裝位置是/usr/lib/python2.7/dist-packages
,建議先試前者(工作站上也是前者),如果six版本還是沒有改變,則指定安裝位置,如下:
$ sudo pip install six --upgrade --target="/usr/lib/python2.7/dist-packages"
此處我的pip出現錯誤了,提示缺少utils包。
解決方法:在python官網上下載pip最新的源碼,python setup.py install
關於GPU版,CUDA安裝及編譯問題,不在此作答~ 安裝步驟上圖
4 Uninstall
如果想卸載掉安裝的tensorflow,非常簡單:
$ sudo pip uninstall tensorflow