【深度學習-學習筆記3】Running a Jupyter Notebook from a Remote GPU Server

在深度學習的過程中,我們肯定會遇到一個問題,那就是神經網絡太深導致參數過多,自己電腦的CPU帶不動,即使帶的動也需要非常多的時間,效率很低。

近期我所在的實驗室爲了解決這個問題,在阿里雲租了幾臺GPU服務器專門來給我們跑代碼做實驗,實驗室裏的師兄也幫助我們在PyCharm上配置完畢,但是筆者還是覺得PyCharm在可視化以及修改代碼上沒有Jupyter Notebook方便(當然如果喜歡PyCharm那種五顏六色高逼格的畫風可以無視接下來的內容)。

那麼接下來就遇到一個問題,如何在本地電腦上用遠程服務器上的Jupyter Notebook。前期也在網上查了很多資料,大部分都是英文的並且不能很好地解決問題,筆者在一番搗鼓之後終於解決了此問題。首先給大家看看最後的結果



1、操作前提

在PyCharm上已經可以用遠程服務器跑程序,即遠程服務器已經裝好了Anaconda和cuda。


2、連接遠程服務器

  1. 打開Anaconda Prompt(別的應該也可以,例如git)
  2. 在裏面輸入你要連接的服務器
ssh [email protected]
  1. 系統會提示你輸入密碼
    這個地方需要說明一下,輸入密碼的時候不像我們登錄微信QQ這種它會顯示密碼,這個你不管輸入啥,他的光標都不會移動,這是正常現象,不要覺得自己電腦死機了,你就一個個的把密碼敲進去按回車就行了。
  2. 提示你連接服務器成功

    並且此時窗口左上角已經變成了你的服務器的名字。
  3. 這個時候輸入jupyter notebook如果沒有報錯的話,說明這個id已經有人給你配置好了,因爲通常一個服務器會被分給好幾個人,而且如果有一個人配置好了,用這個id的都不用進行下面的步驟了,直接進入網站輸入密碼就可以正常使用了。然而現在的情況應該是會報錯,所以纔有下面的步驟,記住一個id一個人配置好了就可以了喲

3、生成默認配置文件

在閃光標的地方輸入如下代碼生成配置文件:

jupyter notebook --generate-config

4、生成祕鑰

  1. 輸入 ipython,進入ipyhon命令行
ipython
  1. 輸入
In [1]: from notebook.auth import passwd

In [2]: passwd()
  1. 這裏要求你輸入以後登錄使用的密碼(這個密碼和之前登錄服務器的密碼不是一個意思,這個密碼是你配置好了之後第一次登陸jupyter界面它會讓你輸入的密碼),然後生成一個祕鑰,然後將祕鑰複製隨便粘貼到一個什麼地方,因爲後面會用
Enter password: 
Verify password: 
Out[2]: 'sha1:1b4ea9662b35:3e3d6a823d264d466f125a0939623c05e7b66007'

當然上面這個Out[2]是我隨便打的,它會根據你輸入的密碼給你匹配一個。


  1. 最後輸入"exit"退出ipyhon命令行。

5、修改配置文件

  1. 修改用戶主目錄下~/.jupyter/jupyter_notebook_config.py文件,輸入
vim ~/.jupyter/jupyter_notebook_config.py
  1. 然後就會進入到一個代碼都是藍色的地方,現在你出的狀態是隻讀狀態,不能更改,按一下鍵盤上的“i”,便可進入修改模式。這個地方需要注意藍色代碼界面不支持鼠標滾輪翻頁,只能用電腦小鍵盤的上下鍵來控制光標。然後修改下面六個東西,記住一定是六個,別的都別動,動了後面就進不去了,不要問我爲什麼。。。
  • 取消c.NotebookApp.password = ''的註釋,並將之前生成的祕鑰(那一長串)複製進去。
c.NotebookApp.password = 'sha1:1b4ea9662b35:3e3d6a823d264d466f125a0939623c05e7b66007'
  • 取消註釋並修改單引號裏的爲*
c.NotebookApp.ip='*' #×允許任何ip訪問
  • 取消註釋並修改等號後的爲False
c.NotebookApp.open_browser = False
  • 取消註釋並修改等號後數字,最好不要用8888,可以用8891,8892…
c.NotebookApp.port =8888 #可自行指定一個端口, 訪問時使用該端口
  • 還有一個allow_remote_access之類的一個設置,記得改成True並取消註釋,自己改的時候忘記複製代碼了就不放代碼了,和上面格式類似的一條命令,仔細找一找。
  • 最後還有一個allow_root之類的一個設置,j就在上一條的正下面,記得改成True並取消註釋,自己改的時候忘記複製代碼了就不放代碼了,和上面格式類似的一條命令,仔細找一找。

然後就大功告成了,先按一下"Esc"退出修改模型,然後在任意空白的一行輸入":wq",退出修改配置文件模式。

以上六點可以說是本文的精華,大家一定要認真找認真改。


6、測試

到這一步可以說所有的操作都完成了,下面就是見證奇蹟的時刻了。重複2.5的操作,輸入jupyter notebook,如果沒有報錯而是出現了幾條黃色綠色的提示,那麼恭喜你成功了。

現在打開我們心愛的瀏覽器,輸入網址"xx,xx,xx,xx:YYYY"(其中xx,xx,xx,xx爲我們服務器ip號碼@後面的八位,YYYY爲5.2中設置的那個端口號碼)就可以成功訪問遠程服務器的jupyter了,然後第一次登陸會讓你輸入4.3中你設置的password之後就可以愉快的跑代碼啦。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章