Ubuntu環境下Anaconda安裝TensorFlow並配置Jupyter遠程訪問


  本文主要講解在Ubuntu系統中,如何在Anaconda下安裝TensorFlow以及配置Jupyter Notebook遠程訪問的過程。

  在官方文檔中提到,TensorFlow的安裝主要有以下五種形式:

  1. Pip安裝:這種安裝形式類似於安裝其他的Python安裝包。會影響到機器上當前的Python環境,可能會與已安裝的某些版本相沖突。
  2. Virtualenv安裝:將TensorFlow安裝在指定路徑下,與當前的Python環境相隔離。
  3. Anaconda安裝:以Anaconda為基礎安裝TensorFlow,和上面的形式相同,也與當前Python環境相隔離。在使用TensorFlow時不影響其他Python應用的使用。
  4. Docker安裝:在Docker中隔離安裝TensorFlow
  5. 從源碼安裝:編譯源碼生成TensorFlow的安裝whell文件。

      在安裝過程中,嘗試了Pip安裝和Anaconda安裝兩種形式。其中Pip安裝過程比較簡單,按照官方文檔中的步驟進行即可。接下來主要描述的是Anaconda安裝的過程。

一、Anaconda和TensorFlow環境

1、Anaconda安裝

  首先去本文最后的Anaconda官方下載地址下載Anaconda安裝文件Anaconda2-4.2.0-Linux-x86_64.sh
  下載完成后上傳到服務器中,在文件路徑下執行如下命令:
bash Anaconda2-4.2.0-Linux-x86_64.sh

  接下來按照提示設置一些安裝路徑等參數,Anaconda安裝完成后,會安裝很多Python中常用的package,比如ipython和jupyter等。

2、TensorFlow環境配置和切換

  安裝完成后,使用如下命令生成一個名為tensorflow的conda環境,根據python版本選擇正確的命令執行即可

# Python 2.7
$ conda create -n TensorFlow python=2.7

# Python 3.4
$ conda create -n TensorFlow python=3.4

# Python 3.5
$ conda create -n TensorFlow python=3.5

  生成conda環境主要是可以自由切換tensorflow環境和普通python環境。
(1)進入TensorFlow環境
  使用如下命令進入TensorFlow環境:
source activate tensorflow
  此時界面如圖所示,可以看到,在這里會將/usr/local/ml/anaconda2/envs/tensorflow/bin配置到PATH變量前,
  這里寫圖片描述

(2)退出tensorflow環境
  使用如下命令可以從tensorflow環境中退出:
source deactivate
  結果如下,可以看到這兩種環境下python的執行路徑是不相同的
  
這里寫圖片描述

二、TensorFlow安裝

1、安裝

  在官方文檔中介紹了在Anaconda中安裝TensorFlow有兩種方法,一種是使用conda安裝,另一種是使用pip安裝。在實際操作時發現由於網絡原因,稍大一點的安裝包就會長時間卡住無響應。可以考慮將需要的安裝包下載后以local模式進行安裝,在操作中發現pip安裝可下載的資源比較多,而conda安裝資源比較難找,所以接下來以pip的方式進行安裝。
  在conda安裝時,可以看到TensorFlow需要依賴的package及版本如下:
  這里寫圖片描述

  在pip安裝模式下,根據安裝過程的提升,將對應版本的安裝文件從本文最末的Python安裝包下載地址中下載到本地。比如在此次安裝過程中,我手動下載了幾個比較大的安裝文件,如下所示

pip install numpy-1.11.2-cp27-cp27mu-manylinux1_x86_64.whl
pip install protobuf-3.0.0-py2.py3-none-any.whl
pip install tensorflow-0.11.0rc0-cp27-none-linux_x86_64.whl

2、遇到的報錯

  安裝完成后,在tensorflow環境下執行示例代碼時發現了如下的一個報錯

ImportError: libcudart.so.7.0: cannot open shared object file: No such file or directory
...
Error importing tensorflow. Unless you are using bazel

  經排查發現是tensorflow安裝文件下載錯誤導致的。我本想安裝的是CPU Only版本,而錯誤安裝了一個GPU enabled版本。
  這里寫圖片描述

  有關該錯,還可以參考官方文檔中的詳細描述

  重新安裝對應版本后錯誤消失。

3、驗證安裝是否正確

  官方文檔中提供一段檢查tensorflow安裝是否正確的代碼,如下所示

$ python
...
>>> import tensorflow as tf
>>> hello = tf.constant('Hello, TensorFlow!')
>>> sess = tf.Session()
>>> print(sess.run(hello))
Hello, TensorFlow!
>>> a = tf.constant(10)
>>> b = tf.constant(32)
>>> print(sess.run(a + b))
42
>>>

  運行結果如下所示:
  這里寫圖片描述

  到這里TensorFlow已經正確安裝,可以繼續進行后續學習了。
  但是考慮到TensorFlow安裝在虛擬機中,使用不是很方便,接下來考慮配置一個jupyter notebook server服務可以在瀏覽器中遠程訪問,更加方便的使用tensorflow。

4、查看版本和安裝路徑

  查看TensorFlow的版本:

>>> import tensorflow as tf
>>> tf.__version__
'0.11.0rc2'

  查看TensorFlow安裝路徑:

>>> tf.__path__
['/usr/local/ml/anaconda2/envs/tensorflow/lib/python2.7/site-packages/tensorflow']

5、TensorBoard啟動和訪問

  每次啟動TensorBoard時可以按照如下命令進行啟動,需要用--logdir參數指定SummaryWriter的事件文件寫出路徑。

tensorboard --logdir /usr/local/ml/anaconda2/envs/tensorflow/logs

  啟動后,輸出如下信息,默認啟動端口號為6006,可以使用后面的幫助信息查看如何在啟動時指定其他端口。

Starting TensorBoard 29 on port 6006
(You can navigate to http://192.168.1.100:6006)

  頁面如下:
  這里寫圖片描述

  更多啟動參數可以查看tensorboard的幫助信息

tensorboard -h

三、Jupyter Notebook遠程訪問

  在TensorFlow官方文檔中正確安裝TensorFlow后,還有一小部分文檔描述在tensorflow環境下安裝IPython。如果完全按照官方文檔的提升安裝所需組件后,是無法通過瀏覽器遠程使用TensorFlow的。需要在TensorFlow環境下手動安裝Jupyter Notebook並且配置其Server方式。

1、Jupyter安裝

  去Python安裝包下載地址中下載Jupyter安裝文件,並按安裝過程中的依賴提示,下載並安裝Jupyter依賴的安裝包。

2、Jupyter Notebook Server配置

  Jupyter安裝完成后,需要進行以下一系列操作並配置好配置文件。配置完成后,建議在Chrome瀏覽器中遠程使用,由於瀏覽器原因遇到的報錯會在最后描述。
  參考Jupyter Notebook官方文檔中的步驟就可以實現遠程訪問的功能。
  
(1)生成配置文件
  使用如下命令

jupyter notebook --generate-config

  會在~/.jupyter目錄下生成一個名為jupyter_notebook_config.py的配置文件

(2)准備配置的密碼
  如下所示,

In [1]: from notebook.auth import passwd
In [2]: passwd()
Enter password:
Verify password:
Out[2]: 'sha1:67c9e60bb8b6:9ffede0825894254b2e042ea597d771089e11aed'

  注意保存上面的Out[2]中生成的內容

(3)生成pem和key文件
  使用如下命令會在當前路徑下生成一個mykey.key和一個mycert.pem文件,這兩個文件會在后面的配置中使用到。下面的命令會生成有效期為365天的certificate文件。

openssl req -x509 -nodes -days 365 -newkey rsa:1024 -keyout mykey.key -out mycert.pem

  
(4)配置配置文件
  這里主要配置第一步中的jupyter_notebook_config.py文件。需要配置的選項如下:

c.NotebookApp.certfile = u'/absolute/path/to/your/certificate/mycert.pem'
c.NotebookApp.keyfile = u'/absolute/path/to/your/certificate/mykey.key'
# Set ip to '*' to bind on all interfaces (ips) for the public server
c.NotebookApp.ip = '*'
c.NotebookApp.password = u'sha1:bcd259ccf...<your hashed password here>'
c.NotebookApp.open_browser = False

# 指定端口號
c.NotebookApp.port = 8888

  配置完成后,在TensorFlow環境下輸入jupyter notebook命令,在遠程中打開Chrome瀏覽器,輸入https://ip:8888就可以遠程訪問並使用TensorFLow了。
  最終效果如下:
  這里寫圖片描述

注意事項:
  注意這里最好使用Chrome瀏覽器,以免遇到莫名其妙的文件。比如我在使用獵豹瀏覽器時在頁面上遇到了404 : Not Found的錯誤
  這里寫圖片描述

  在后台輸出的日志中顯示
[W 08:33:55.116 NotebookApp] 404 GET
  換到Chrome瀏覽器后,問題消失。

主要參考和使用的資源網站:
1、TensorFlow官方文檔
2、TensorFlow Github地址
3、jupyter遠程訪問
4、Anaconda官方下載地址
5、Python安裝包下載地址


免責聲明!

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



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