出發點:
本地電腦只有4個核心,8G內存,算法的參數選擇比如網格搜索選取參數,訓練速度慢且出現任務無法合併到worker的情況
解決方案:
1、購買雲服務器(基於之前使用的阿里雲平臺)
選取按流量計費
2、在服務器上安裝運行環境
2.1安裝anaconda(包管理軟件)
下載列表:
https://repo.continuum.io/archive/Anaconda3-2019.07-Linux-x86_64.sh
安裝步驟:
安裝命令:bash Anaconda3-2019.07-Linux-x86_64.sh
2.2安裝jupter notebook
(1)conda安裝 jupynotebook
安裝命令:conda install jupyter
參考:https://blog.csdn.net/yimingsilence/article/details/80679564
(2)pip 安裝jupynotbook
sudo pip install jupyter
安裝 ipython
sudo apt-get -y install ipython ipython-notebook
參考:https://blog.csdn.net/u012743859/article/details/77869382
(3)設置密碼
在Xshell執行命令:
$ jupyter notebook password
Enter password: yourcode #輸入密碼
Verify password: yourcodeagain #再次輸入密碼確認
#運行後結果
[NotebookPasswordApp] Wrote hashed password to /Users/you/.jupyter/jupyter_notebook_config.json #密碼被保存的位置 ~/.jupyter/jupyter_notebook_config.json
參考:JupyterNotebook配置遠程登錄 https://blog.csdn.net/u014636245/article/details/83652126
2.3 配置notebook
(1)打開配置文件(使用vim操作:esc退出編輯模式,shift+G滾到最後一行,shit+i編輯,shit+:+wq保存退出):
cd ~/.jupyter
vim jupyter_notebook_config.py
(2) 添加配置文件內容:
# Set options for certfile, ip, password, and toggle off browser auto-opening
# 設置證書、ip、密碼並關閉自動打開瀏覽器
# 設置證書地址
c.NotebookApp.certfile = u'/root/secret/mycert.pem'
c.NotebookApp.keyfile = u'/root/secret/mykey.key'
# Set ip to 'localhost' to bind on localhost for the private usage
# 用localhost域名來訪問jupyter notebook
c.NotebookApp.ip = 'localhost'
c.NotebookApp.password=u'添加密碼哈希值'
c.NotebookApp.open_browser = False
# 爲了網絡安全,設置一個不常用的端口
c.NotebookApp.port = 8888
密碼哈希值的獲取方法 :
在本地電腦運行jupter notebook ,並輸入以下命令獲取
In [1]: from notebook.auth import passwd
In [2]: passwd()
Enter password:
Verify password:
Out [1]: 'sha1:XXXXXXX:-----------'
openssl着證書的獲取方法:
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout mykey.key -out mycert.pem
並將在雲服務器生成的文件 mykey.key mycert.pem 保存在指定文件夾下,並拷貝路徑待上述配置文件內容中
3、本地電腦遠程訪問雲服務器的notebook
(1)端口轉發? (2)Xshell 配置 (3)參考【4】遠程訪問服務器Jupyter Notebook的兩種方法
下述使用第二種方式:
選擇文件-》屬性-》隧道並按照如下方式設置:
Type選擇Local(Outgoing),源主機Source Host寫localhost,監聽端口Listening Port填你設置的Port,目標主機Destination Host填localhost,目標端口Destination Port填你設置的端口Port。
3.1 在雲服務器端操作開啓允許外網連接notebook
先切換到指定目錄(存在jupter格式的文件),再執行下述的命令
cd /root/O2OCode
jupyter notebook --ip=0.0.0.0 --port=8888 --allow-root
3.2在本地瀏覽器打開:
輸入網址http://雲服務器ip地址:端口號
發現問題:採用隧道模式則應該是:https://localhost:端口號 纔可以正確訪問!
3.3 出現notebook 但是證書還沒有驗證故直接忽略安全保護
輸入設置的密碼,即可進入
4、執行算法
在notebook 執行,注意要打開notebook格式的文件運行纔會出現編輯運行的選項
5、釋放雲服務器的實例
創建鏡像保存
參考資料
【1】anaconda 安裝 https://repo.continuum.io/archive/
【2】用SSL/TLS和XShell遠程訪問 Jupyter Notebook 的方法 https://blog.csdn.net/chr1991/article/details/92618832
【3】官網配置方法 Running a notebook server https://jupyter-notebook.readthedocs.io/en/latest/public_server.html#prerequisite-a-notebook-configuration-file
【4】遠程訪問服務器Jupyter Notebook的兩種方法 https://www.jianshu.com/p/8fc3cd032d3c