自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

如何在AWS GPU上運(yùn)行Jupyter noterbook?

開發(fā) 開發(fā)工具
本文將指導(dǎo)你逐步在 AWS GPU 實(shí)例上運(yùn)行深度學(xué)習(xí) Jupyter notebook,并可在你的瀏覽器中從任何地方對(duì)其編輯。

本文將指導(dǎo)你逐步在 AWS GPU 實(shí)例上運(yùn)行深度學(xué)習(xí) Jupyter notebook,并可在你的瀏覽器中從任何地方對(duì)其編輯。如果你的本地機(jī)器上沒有 GPU,這將會(huì)是一個(gè)研究深度學(xué)習(xí)的理想設(shè)置。

一、什么是 Jupyter noterbook?為什么要在 AWS GPU 上運(yùn)行 Jupyter notebook?

Jupyter notebook 是一個(gè)網(wǎng)頁(yè)應(yīng)用程序,允許你以交互的方式編寫并注釋 Python 代碼。這是一種做試驗(yàn),做研究,并分享工作內(nèi)容的有效方法。了解什么是 notebook 請(qǐng)點(diǎn)擊這里(鏈接:http://suo.im/4Em4IR)。

許多深度學(xué)習(xí)應(yīng)用的計(jì)算非常密集,且在筆記本的 CPU 內(nèi)核上運(yùn)行通常需要耗費(fèi)幾個(gè)小時(shí)甚至是幾天。如果把一個(gè)現(xiàn)代的 CPU 換成 GPU,訓(xùn)練和推理的速度可提升 5 到 10 倍。但是,你可能無(wú)法在本地計(jì)算機(jī)上安裝 GPU。在 AWS 運(yùn)行 Jupyter notebook 可以給你在本地計(jì)算機(jī)上運(yùn)行時(shí)的相同體驗(yàn),同時(shí)允許你利用 AWS 上的一個(gè)或多個(gè) GPU。如果你只是偶爾使用深度學(xué)習(xí),相比投資專有的 GPU,Jupyter notebook 更為有利,你只需支付所用的東西。

二、為什么我不想在 AWS 上使用 Jupyter 進(jìn)行深度學(xué)習(xí)?

AWS GPU 實(shí)例的價(jià)格可以迅速變貴。我們建議的使用價(jià)格是每小時(shí) 0.9 美元。這個(gè)價(jià)格偶爾使用還可以接受,但是如果你每天都要進(jìn)行幾個(gè)小時(shí)的實(shí)驗(yàn),那么你***搭建配備 Titan X 或者 GTX 1080 Ti 的專屬深度學(xué)習(xí)機(jī)。

1. 開始之前注意:

  • 你需要一個(gè)激活的 AWS 賬戶
  • 如果你對(duì) AWS EC2 有所了解會(huì)有幫助,但并不必須

搭建需要花費(fèi) 5 到 10 分鐘的時(shí)間。

2. 分步指南

(1) 導(dǎo)航至 EC2 控制面板,并點(diǎn)擊「啟動(dòng)實(shí)例」鏈接。

導(dǎo)航至 EC2 控制面板

(2) 選擇官方 AWS 深度學(xué)習(xí) Ubuntu AMI

選擇「AWS 市場(chǎng)」并在搜索框中搜索「深度學(xué)習(xí)」。

選擇官方 AWS 深度學(xué)習(xí) Ubuntu AMI

向下滾動(dòng),直到找到名為「深度學(xué)習(xí) AMI Ubuntu 版本」的 AMI(如下圖),并選擇它。

「深度學(xué)習(xí) AMI Ubuntu 版本」的 AMI

(3) 選擇 p2.xlarge 實(shí)例

該實(shí)例類型提供對(duì)單個(gè) GPU 的訪問,并且每小時(shí)的使用成本為 0.9 美元(截至 2017 年 3 月)。點(diǎn)擊「配置實(shí)例細(xì)節(jié)」:

選擇 p2.xlarge 實(shí)例

(4) 配置實(shí)例細(xì)節(jié)

你可以為「配置實(shí)例」、「添加存儲(chǔ)」和 「添加標(biāo)簽」等步驟保留默認(rèn)設(shè)置。但是我們將自定義步驟「配置安全組」。

創(chuàng)建一個(gè)自定義 TCP 規(guī)則以允許 8888 端口。

在你當(dāng)前的公共 IP(例如你的筆記本電腦的 IP),或者在前者不可能的情況下,對(duì)于任意 IP,該規(guī)則都被允許。請(qǐng)注意,如果你允許任意 IP 均可接入端口 8888,則理論上任何人都可以收聽你的實(shí)例上的那個(gè)端口(這是我們將運(yùn)行 IPython notebook 的地方)。我們將為筆記本電腦添加密碼保護(hù),以便降低任意人員都可以對(duì)其進(jìn)行修改的風(fēng)險(xiǎn),但這也許是較弱的保護(hù)。如果可能的話,你應(yīng)該考慮限制特定 IP 的訪問。但是,如果你的 IP 地址不斷更改,這不太實(shí)際。如果你打算對(duì)任意 IP 開放接入端,請(qǐng)記住不要在實(shí)例上留下任何敏感數(shù)據(jù)。

創(chuàng)建一個(gè)自定義 TCP 規(guī)則以允許 8888 端口

在啟動(dòng)過程結(jié)束時(shí),系統(tǒng)將會(huì)詢問你是否要?jiǎng)?chuàng)建新的連接密鑰,或者是否重復(fù)使用現(xiàn)有的密鑰。如果你之前從未使用過 EC2, 只需創(chuàng)建新的密鑰并下載即可。

(5) 啟動(dòng)你的實(shí)例并連接到它

為了連接實(shí)例,在 EC2 控制面板上選擇并點(diǎn)擊「連接」按鈕,遵循提供的說明,例如:

注意,實(shí)例完全啟動(dòng)之前可能需要幾分鐘。如果開始時(shí)不能連接,請(qǐng)等待并重試。

(6) 設(shè)置 SSL 證書

通過 ssh 登錄實(shí)例后,在實(shí)例的根目錄下創(chuàng)建一個(gè) ssl 目錄,然后對(duì)其進(jìn)行 cd(并非必要,但更干凈)。

  1. mkdir ssl 
  2. cd ssl 

使用 OPenSSL 創(chuàng)建新的 SSL 證書:

  1. sudo openssl req -x509 -nodes -days 365 -newkey rsa:1024 -keyout "cert.key" -out "cert.pem" -batch 

完成后,你已在當(dāng)前的 sll 目錄中創(chuàng)建了兩個(gè)文件:cert.key 和 cert.pem.

(7) 配置 Jupyter

在我們開始使用 Jupyte 之前,我們需要調(diào)整其默認(rèn)配置。首先,我需要生成一個(gè)新的 Jupyter 配置文件(仍然在遠(yuǎn)程實(shí)例上):

  1. jupyter notebook --generate-config 

或者,你可以為自己的 notebook 生成 Jupyter 密碼。由于你的實(shí)例配置可能為從任何 Ip 訪問(取決于你在配置安全組時(shí)所做的選擇),***通過密碼限制對(duì) Jupyter 的訪問。要生成密碼,請(qǐng)打開 IPython shell(ipython 命令)并運(yùn)行:

  1. from IPython.lib import  
  2. passwdpasswd() 
  3. exit 

passwd() 命令將要求你輸入并驗(yàn)證密碼,完成后將顯示密碼哈希(hash)。復(fù)制哈希,我們稍后會(huì)用到。它看起來像:「sha1:b592a9cf2ec6:b99edb2fd3d0727e336185a0b0eab561aa533a43」(這是「密碼」哈希,并非是你應(yīng)該使用的密碼)。

接下來,使用 Vi(或者用你最喜歡的可用文本編輯器)編輯配置文件:

  1. vi ~/.jupyter/jupyter_notebook_config.py 

這是一個(gè) Python 文件,其中所有的行都被注釋掉。

你需要插入以下 Python 代碼行(比如,在文件的開頭)

  1. c = get_config()  # get the config object 
  2. c.NotebookApp.certfile = u'/home/ubuntu/ssl/cert.pem' # path to the certificate we generated 
  3. c.NotebookApp.keyfile = u'/home/ubuntu/ssl/cert.key' # path to the certificate key we generated 
  4. c.IPKernelApp.pylab = 'inline'  # in-line figure when using Matplotlib 
  5. c.NotebookApp.ip = '*'  # serve the notebooks locally 
  6. c.NotebookApp.open_browser = False  # do not open a browser window by default when using notebooks 
  7. c.NotebookApp.password = 'sha1:b592a9cf2ec6:b99edb2fd3d0727e336185a0b0eab561aa533a43'  # this is the password hash that we generated earlier. 

如果,你以前沒有使用過 Vi,請(qǐng)記住,你需要按 i 開始插入內(nèi)容;完成后,你可以點(diǎn)擊 esc 然后是 :wq 最終 enter 退出 Vi,同時(shí)保存更改(:wq 代表寫入-退出)

(8)  更新 Keras

你馬上可以開始使用 Jupyte 了。但首先,通過運(yùn)行(仍然在遠(yuǎn)程實(shí)例上)以確保 Keras 是***的:

  1. sudo pip install keras --upgrade --no-deps 

你所使用的 AMI 由亞馬遜負(fù)責(zé)日常更新,但其可能沒有使用每個(gè)包的***版本。

(9) 設(shè)置本地端口轉(zhuǎn)發(fā)

在本地機(jī)器上的一個(gè) Shell(不是遠(yuǎn)程實(shí)例中)中,開始將你的本地端口 443(HTTPS 端口)轉(zhuǎn)發(fā)到遠(yuǎn)程實(shí)例的端口 8888。這是通過句法(syntax)完成的:

  1. sudo ssh -i awsKeys.pem -L local_port:local_machine:remote_port remote_machine 

在我們的例子中為:

  1. sudo ssh -i awsKeys.pem -L 443:127.0.0.1:8888 ubuntu@ec2-54-147-126-214.compute-1.amazonaws.com 

(10) 從你的本地瀏覽器中開始使用 Jupyter

首先,在遠(yuǎn)程實(shí)例中,創(chuàng)建保存你的 notebook 的文件夾:

  1. mkdir notebooks 
  2. cd notebooks 

在遠(yuǎn)程實(shí)例上,通過在你創(chuàng)建的文件夾中運(yùn)行此命令來啟動(dòng) Jupyter Notebook:

  1. ipython notebook 

然后,在本地瀏覽器中,導(dǎo)航至我們發(fā)送到遠(yuǎn)程 notebook 進(jìn)程的本地地址 https://127.0.0.1。確保你在地址中使用 HTTPS,否則你將收到 SSL 錯(cuò)誤。

你將看到一個(gè)安全警告:

該警告只是因?yàn)槲覀兩傻?SSL 證書沒有被任何受權(quán)威機(jī)構(gòu)驗(yàn)證

該警告只是因?yàn)槲覀兩傻?SSL 證書沒有被任何受權(quán)威機(jī)構(gòu)驗(yàn)證(顯然,我們剛剛生成了我們自己的證書)。點(diǎn)擊「advanced」,繼續(xù)瀏覽,這很安全。

然后系統(tǒng)會(huì)提示你輸入 Jupyter 密碼。然后,你會(huì)進(jìn)入 Jupyter 控制面板。

Jupyter 控制面板

點(diǎn)擊「新建 - >Notebook」開始。你可以使用你選擇的 Python 版本。

好了!

原文:

https://blog.keras.io/running-jupyter-notebooks-on-gpu-on-aws-a-starter-guide.html

【本文是51CTO專欄機(jī)構(gòu)機(jī)器之心的原創(chuàng)譯文,微信公眾號(hào)“機(jī)器之心( id: almosthuman2014)”】

戳這里,看該作者更多好文

責(zé)任編輯:趙寧寧 來源: 51CTO專欄
相關(guān)推薦

2023-02-10 21:12:41

GPUmacOSStable

2019-08-07 18:52:40

GPU數(shù)據(jù)科學(xué)CPU

2022-11-18 12:47:51

LinuxAWS命令行工具

2021-08-09 09:00:00

Kubernetes云計(jì)算架構(gòu)

2017-02-16 10:15:43

Windows7docker變量

2021-02-25 08:00:00

WindowsWindows 10開發(fā)

2022-09-13 08:40:24

AndroidLinux

2017-09-18 10:05:15

WindowsLinux容器

2015-03-06 11:29:53

圖數(shù)據(jù)庫(kù)Titan圖數(shù)據(jù)庫(kù)NoSQL數(shù)據(jù)庫(kù)

2019-05-09 09:00:00

WindowsKafka

2023-07-28 09:59:31

2014-10-11 11:30:43

CentOSDocker

2016-08-02 10:34:17

LinuxWindows雙啟動(dòng)

2014-03-31 09:45:33

Ubuntu LinuUbuntu 13.1

2009-04-16 09:59:16

Google App PHPJava

2021-05-09 21:35:25

Java機(jī)器代碼

2017-03-21 11:12:22

LinuxAmazon AWS服務(wù)器

2019-12-11 14:27:39

數(shù)據(jù)庫(kù)集群Kubernetes

2018-07-30 09:42:09

AndroidWineWindows App

2013-11-18 09:58:25

亞馬遜AWSAmazon Web
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)