2021-05-12 14:32:11
Ubuntu環境下Anaconda安裝TensorFlow並設定Jupyter Notebook遠端存取
本文主要講解在Ubuntu系統中,如何在Anaconda下安裝TensorFlow以及設定Jupyter Notebook遠端存取的過程。
在官方文件中提到,TensorFlow的安裝主要有以下五種形式:
- Pip安裝:這種安裝形式類似於安裝其他的Python安裝包。會影響到機器上當前的Python環境,可能會與已安裝的某些版本相衝突。
- Virtualenv安裝:將TensorFlow安裝在指定路徑下,與當前的Python環境相隔離。
- Anaconda安裝:以Anaconda為基礎安裝TensorFlow,和上面的形式相同,也與當前Python環境相隔離。在使用TensorFlow時不影響其他Python應用的使用。
- Docker安裝:在Docker中隔離安裝TensorFlow
-
從原始碼安裝:編譯原始碼生成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安裝包下載地址
本文永久更新連結地址:http://www.linuxidc.com/Linux/2018-01/150457.htm
相關文章