前言1、環境準備環境介紹軟件下載VMware下安裝UbuntuUbuntu下Anaconda的安裝2、Xshell遠程鏈接Ubuntu系統3、Jupyter notebook服務器的配置及遠程訪問4、遠程環境的測試Tensorflow軟件庫的安裝簡單爬蟲數據可視化基於神經網絡實現fashion_mnist圖片的識別總結css
現在,人工智能、深度學習等高深知識逐漸融入你們的視野,小大驗證碼的識別,大到無人駕駛技術等都離不開深度學習。迎合時代的腳步,跟上技術的潮流,開始學習深度學習首先須要搭建深度學習環境。搭建環境的方式也有很多,本文主要是介紹,基於Ubuntu+Python+Tensorflow+Jupyter ntebook來搭建環境,以便開始深度學習之旅。該文主要從如下幾個部分的內容來進行介紹:html
OK,話很少說,開始進入正軌吧。(#`O′)python
這裏給你們兩種方式進行下載,一個是官網下載,若是官方下載比較慢的能夠在下方網盤進行下載,你們根據本身的方便下載便可。linux
官網:nginx
網盤:web
注意:如下內容都是在服務端計算機中進行配置sql
在VMware虛擬機下安裝Ubuntu系統雖然有點步驟,也須要點時間,可是並不複雜。在綜合考慮到時間成本與其給你們帶來的價值的關係下,博主就用文字描述了,暫時不貼圖了。可是你沒必要擔憂,關鍵步驟仍是會貼圖說明的,你們根據下方的流程搭建安裝便可 ( ﹁ ﹁ ) ~→。shell
FF31K-AHZD1-H8ETZ-8WWEZ-WUUVA
CV7T2-6WY5Q-48EWP-ZXY7X-QGUWD
ZY5H0-D3Y8K-M89EZ-AYPEG-MYUA8
ZC5XK-A6E0M-080XQ-04ZZG-YF08D
ZY5H0-D3Y8K-M89EZ-AYPEG-MYUA8
以上即是VMware下安裝Ubuntu的全流程,若是在安裝過程當中有什麼問題歡迎聯繫做者或在下方留言。ubuntu
在VMware下安裝好Ubuntu後,雖然Ubuntu內自帶了Python,可是其版本通常是2.7的,並且許多經常使用的工具包並沒用集成,因此咱們還須要安裝Anaconda(一招解千愁),若是熟悉Java的話,Anaconda就相似Maven同樣的存在。咱們根據以上介紹的Anaconda的下載方式在Ubuntu下載好Anaconda以後,進入到其目錄之下(或者cd操做),而後打開終端,執行以下命令來進行安裝:vim
bash Anaconda3-5.3.1-Linux-x86_64.sh # 不要盲目的複製粘貼,根據本身所下載的Anaconda版本執行
執行以後會有一些列諸如贊成協議之類的問題,咱們直接默認默認選項便可(直接Enter,或者yes),直到出現Anaconda環境變量配置的顯示(不要無腦yes過頭了),咱們須要選擇將其加入到環境變量中去。一系列操做以後,咱們關閉終端而後在從新打開終端,而後在終端分別執行conda list、python命令,若是你的終端界面出現相似如下輸出,則恭喜你說明你已經完成了anaconda的安裝。
這裏再說明一點:而若是你的終端輸錯報錯(未找到conda命令之類的)或者Python版本爲2.7,那就說明你以上操做中未將Anaconda加入到環境變量(yes過頭),因此你須要手動配置Anaconda的環境變量,操做以下:
打開環境變量的配置文件,從這裏咱們就能夠看出Linux和Windows下的操做的區別了(windows通常是經過界面的形式進行設置,而Linux下則大多數經過終端並使用vim進行配置)
# 打開環境變量的配置文件,從這裏咱們就能夠看出Linux和Windows下的操做的區別了
# windows通常是經過界面的形式進行設置,而Linux下則大多數經過終端並使用vim進行配置
sudo vim gedit /root/.bashrc
打開文件以後咱們須要在文件末尾添加以下內容(須要熟悉vim操做),其中XXX爲你的Anaconda的bin目錄,例如個人是/home/lxj/anaconda3/bin
export PATH="XXX:$PATH" # XXX爲你的Anaconda的bin目錄,例如個人是/home/lxj/anaconda3/bin
而後保存(Esc -> shift+: -> wq -> 回車),在終端輸入source ~/.bashrc進行更新便可完成Anaconda環境變量的配置,不出意外的話再次分別執行Python、conda list命令以後你會看見conda包的列表以及Python3.7的輸出了。
補充:這裏額外說明一下,以上的操做是使用Vim進行文件編輯的,他不一樣於windows下的記事本等,而是經過特定的操做來對文件進行編輯。對於熟悉Vim操做的應該會理解以上Anaconda環境變量的配置,然而若是是對Vim比較陌生的朋友可能會卡殼,因此在這裏簡單介紹一些vim的操做:
在終端使用vim命令以後將會進入到vim的界面,此時的界面是不容許modify任何內容的,只容許read only。此時咱們輸入i將會進入到vim的編輯模式,如今就能對該文件進行修改了。文件內容修改完成以後,咱們須要退出該vim編輯模式,vim 的退出經常使用的有如下幾種(首先輸入Esc鍵):
對於以上Anaconda環境變量的配置,vim的熟悉至此就足夠了,順便介紹一下其餘經常使用的命令供你們參考
注意:以上內容都是在服務端計算機中進行配置
至此,咱們已經完成了環境的搭建,接下來咱們介紹一下如何使用Xshell遠程鏈接Ubuntu操做
注意:如下內容都是在客戶端計算機中進行配置
安裝好Anaconda以後,咱們須要經過Xshell使用Xshell來遠程鏈接咱們的Ubuntu系統,此時咱們的目標須要轉移至客戶端了。
首先在以上軟件下載中根據連接下載Xshell,以後Windows傻瓜式安裝好Xshell(順便把Xftp安裝下,與Xshell配套使用的,雖然在本文中使用不到)。以後的操做會有幾個坑,可是沒必要擔憂,下面會詳細帶你一個一個的填掉 o(*≧▽≦)ツ┏━┓。
坑一:鏈接失敗
咱們雙擊打開Xshell,並點擊文件並新建,而後根據以下圖進行操做:
補充,上方中的主機屬性是填Ubuntu的ip地址,該地址可在Ubuntu的終端執行ifconfig(windows是ipconfig)命令獲得。
以上信息填寫完以後在出現的界面輸入本身Ubuntu下的用戶登陸密碼便可。
執行以後你會發現鏈接失敗,此時咱們須要檢查一下Ubuntu是否與客戶端處於同一網段下,能夠將Ubuntu設置成橋接模式(右鍵Ubuntu虛擬機而後進行設置,通常用於有線鏈接狀況)或者使用Nat模式(用於無線),以後再次檢查一下客戶端(Windows10)是否可以ping通服務端(Ubuntu),在客戶端的cmd中執行以下:
ping XXX.XXX.XXX.XXX # XXX.XXX.XXX.XXX爲服務端的ip
在以上操做以後,通常就能ping通了,若是失敗了則在Ubuntu終端下執行sudo wfw disable命令關閉防火牆。
坑二:鏈接失敗 (ノへ ̄、)
在如上操做以後,咱們再次嘗試從新鏈接。咱們能夠發現依然鏈接失敗,顯示拒絕鏈接之類的信息。這是由於Xshell是經過ssh協議來鏈接Ubuntu的,可是Ubuntu默認是沒有開啓ssh服務的,因此咱們須要在其終端執行以下命令來開啓ssh服務:
sudo service ssh restart
以後咱們再次嘗試鏈接。
坑三:鏈接失敗 (ノへ ̄、) (ノへ ̄、)
通常來說,這個時候依然是鏈接失敗,由於在默認狀況下Ubuntu未安裝ssh服務,此時咱們須要在Ubuntu下安裝ssh服務,執行如下命令進行安裝:
sudo apt-get install openssh-server
待其安裝好後,咱們再再再次鏈接Ubunut。若是沒法安裝,則須要執行apt-get update進行更新,更新以前若是出現沒法得到鎖相關的報錯信息,則執行以下命令斷開apt進程後再次更新:
# 查看apt相關進程
ps aux |grep apt
# 而後把apt進程殺掉
kill -9 進程號
# 從新更新apt-get
apt-get update
以上坑踩過以後也該鏈接成功了吧。的確此時你將成功鏈接到Ubuntu了,以後Xshell將打開一個終端,這個終端就是Ubuntu下的終端了,也就是說咱們可使用該終端控制Ubuntu了,並對其進行Shell操做。ヽ(✿゚▽゚)ノ
因爲咱們在以前已經安裝過了Anaconda,因此此時的Ubuntu就已經集成了ipython 以及jupyter-notebook(Anaconda就是這麼的強大)。對此,咱們將經過Xshell遠程鏈接Ubuntu來搭建Jupyter notebook的服務器,並對其進行遠程訪問。
from IPython.lib import passwd
passwd()
上述命令執行以後將會在終端顯示設置密碼,方便起見,在這咱們將密碼設置成:123,以後enter並確認便可完成密碼的設置。
注意:這裏的密碼是暗文的形式,輸入以後不會顯示的,還有此時你輸入的密碼須要記住,由於咱們待會遠程訪問Jupyter notebook服務器的時候須要用到該密碼進行登陸
密碼輸入以後,咱們將會看到有一個較長字符串,該字符串是上述密碼的一個加密形式,咱們須要將其複製下來,在以後的ipython_notebook_config.py文件的設置中須要使用,操做結果以下圖所示:
ipython profile create XXX
在上述服務器名建立完成以後,將在終端輸出兩個py文件(ipython_config.py、ipython_kernel_config.py)路徑,以後使用以下cd命令咱們進入到.ipython路徑cd ./.ipython。具體操做圖示以下:
cd .ipython/profile_txj
vim ipython_notebook_config.py
進入到vim環境以後咱們在ipython_notebook_config.py文件中編輯以下內容,主要是配置notebook的登陸密碼(加密後的形式)以及服務的開放端口:
c = get_config()
c.IPKernelApp.pyalb = "inline"
c.NotebookApp.ip = "*"
c.NotebookApp.open_browser = False
c.NotebookApp.allow_root = True
c.NotebookApp.password = u"加密後的密碼" # 這裏咱們須要使用上述加密後的密碼,在另外一個終端可見
c.NotebookApp.port = 8888 # 在這裏,咱們須要設置一個jupyter-notebook的端口,儘可能設置的少見點,以避免形成端口衝突
編輯好後,wq命令保存並退出。
jupyter notebook --config=【你的ipython_notebook_config.py文件路徑】
# 例如/home/lxj/.ipython/profile_XXX/ipython_notebook_config.py
在上述命令執行以後,若是出現以下圖片所示內容,則說明咱們的服務端已經正常啓動
以上就是Jupyter notebook服務器的配置及遠程訪問的內容了,可是可否正常使用呢,咱們下面將經過幾個簡單的例子來對其進行測試。
TensorFlow™ 是一個採用數據流圖(data flow graphs),用於數值計算的開源軟件庫。節點(Nodes)在圖中表示數學操做,圖中的線(edges)則表示在節點間相互聯繫的多維數據數組,即張量(tensor)。它靈活的架構讓你能夠在多種平臺上展開計算,例如臺式計算機中的一個或多個CPU(或GPU),服務器,移動設備等等。TensorFlow 最初由Google大腦小組(隸屬於Google機器智能研究機構)的研究員和工程師們開發出來,用於機器學習和深度神經網絡方面的研究,但這個系統的通用性使其也可普遍用於其餘計算領域。
上述操做完成以後,咱們須要在Anaconda下安裝Tensorflow包,這裏咱們能夠採用Anaconda虛擬環境中安裝:
# Anaconda下經過`create`命令並指令Python版本建立一個虛擬環境,命名tensorflow2
conda create --name tensorflow2 python=3.六、
# `conda env list`能夠看見當前所擁有的環境
conda env list
# `activate`命令激活所須要的虛擬環境
conda activate tensorflow2
# 成功進入後後咱們便可直接經過pip進行安裝`tensorflow2`
pip install -U tensorflow -i https://pypi.tuna.tsinghua.edu.cn/simple --default-timeout=1000
# GPU版本安裝:conda create -n tf2 tensorflow-gpu,執行以後會自動安裝 CUDA,cuDNN,TensorFlow GPU 等
在虛擬環境安裝好Tensorflow2以後,要想在Jupyter notebook下使用該虛擬環境,咱們還須要在該環境下安裝ipkernel:
conda install ipykernel
python -m ipykernel install --name tensorflow2 --display-name tensorflow2
成功安裝以後,在tensorflow2虛擬環境下使用jupyter notebook命令便可啓動,登陸以後在服務頁面中便可指定tensorflow2 kernel環境來編寫代碼。經過上述的操做,咱們已經完成了全部的工做。下面咱們對其進行驗證,看看Anaconda下的第三方包可否正常使用。爲此,咱們經過如下幾個小的案例來進行驗證:
import requests
from bs4 import BeautifulSoup
def get_page(url, headers=None):
return requests.get(url).text
if __name__ == "__main__":
baidu_url = "https://www.baidu.com"
baidu_soup = BeautifulSoup(get_page(baidu_url), "html.parser")
son_links = [biaoqian_a.attrs["href"] for biaoqian_a in baidu_soup.find_all("a")]
for index, son_link in enumerate(son_links):
print("正在請求第{}個頁面".format(str(index)))
print(get_page(son_link))
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import matplotlib as mpl
% matplotlib inline
for module in np, pd, mpl:
print(module.__name__, module.__version__)
if __name__ == "__main__":
ax =pd.DataFrame(np.random.randn(1000, 6), columns=list('ABCDEF')).cumsum().plot(secondary_y=["D", "E", "F"])
ax.set_ylabel('ABC plot')
ax.right_ax.set_ylabel('DEF scale')
ax.legend(loc='upper left')
ax.right_ax.legend(loc='upper right')
plt.show()
import tensorflow as tf
import numpy as np
from matplotlib import pyplot as plt
import matplotlib as mpl
%matplotlib inline
for module in tf, np, mpl:
print(module.__name__, module.__version__)
if __name__ == "__main":
(x_train_all, y_train_all), (x_test, y_test) = tf.keras.datasets.fashion_mnist.load_data()
x_valid, x_train = x_train_all[:50000], x_train_all[50000:]
y_valid, y_train = y_train_all[:50000], y_train_all[50000:]
model = tf.keras.models.Sequential()
model.add(tf.keras.layers.Flatten(input_shape = [28, 28])) # 定義輸入層
model.add(tf.keras.layers.Dense(300, activation="relu")) # 定義全鏈接層(最普通的神經網絡),中間定義兩個隱藏層
model.add(tf.keras.layers.Dense(100, activation="relu")) # 再定義一個全鏈接層
model.add(tf.keras.layers.Dense(10, activation="softmax")) # 定義輸出層
model.compile(loss = "sparse_categorical_crossentropy",
optimizer = "adam",
metrics = ["accuracy"])
history = model.fit(x_train, y_train, epochs=10,
validation_data=(x_valid, y_valid))
pd.DataFrame(history.history).plot(figsize=(8, 5))
plt.grid(True)
plt.gca().set_ylim(0, 1)
plt.show()
經過上述的演示,已經完成了windows10下使用xshell遠程鏈接linux系統以及遠程訪問jupyter-notebook服務,並經過幾個小例子來對其進行驗證說明能夠正常使用linux下的anaconda。這樣的話便可實現兩臺PC級之間的協調工做,一臺用做服務端提供環境,另一臺做爲客戶端來遠程進行訪問並編寫代碼,並且其中的優點也是顯而易見的,既能在必定程度上減少計算機的壓力,又能方便管理且易於操做。另外,以上的環境搭建只做爲一個案例,並不惟一,好比你可使用Linux Centos、aliyun雲服務器等。若是以上內容幫助到了你,請點個贊吧.゚ヽ(。◕‿◕。)ノ゚.:。+゚