TensorFlow 0.9.0 從源碼安裝及bug修復

爲了熟悉tensorflow,我採用從源碼安裝,期間也熟悉了linux下的一些知識,解決了一些問題,記錄以下:html

版本:python

  • tensorflow:0.9.0 (GitHub: tensorflow
  • Ubuntu:14.04 64位(32位不能夠,親測有效)

安裝:linux

 Tensorflow(簡易安裝步驟)

 

   接下來,就能夠按照Tensorflow Download and Setup中的Pip Installation開始安裝,命令以下:git

 

# 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(推薦安裝步驟): github

  http://blog.csdn.net/forest_world/article/details/51306432api

 

   官網安裝步驟:ruby

  www.tensorflow.org/   (有點混亂,建議使用csdn上步驟)bash

  github版本:python2.7

  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

出問題比較多的是protobufsix pip包,例如:
protobufsix 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
相關文章
相關標籤/搜索