TensorFlow 0.9.0 從源碼安裝及bug修復


為了熟悉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

出問題比較多的是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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM