官术网_书友最值得收藏!

  • PyTorch深度學習實戰
  • (美)伊萊·史蒂文斯 (意)盧卡·安蒂加 (德)托馬斯·菲曼
  • 1901字
  • 2022-02-25 15:14:38

1.5 硬件和軟件要求

本書將要求編碼和運行涉及大量數值運算的任務,如涉及大量矩陣的乘法。事實證明,在新數據上運行一個預先訓練過的網絡幾乎是當今任何筆記本計算機或臺式計算機都能做到的。即使使用一個預先訓練好的網絡,并對其中一小部分進行重新訓練,使其專門用于一個新的數據集,也不一定需要專門的硬件。你可以使用一臺當前主流配置的筆記本計算機或臺式計算機來完成我們在本書第1部分中所做的一切。

然而,我們預計在第2部分完成更高級示例的完整訓練,這將需要一個支持CUDA的GPU。在第2部分中使用的默認配置參數假設GPU具有8GB的RAM(我們建議使用NVIDIA GTX 1070或更高的配置),但如果硬件可用的RAM較少的話,這些參數可以適當調整。需要說明的是:如果你愿意等待的話,這樣的硬件配置并不是硬性要求的。但是在GPU上運行至少可以減少一個數量級的訓練時間(通常會快40~50倍)。單獨來看,計算參數更新所需的操作在現代硬件上(如運行在筆記本計算機的CPU上)執行得非??欤蟾艦閹追种幻氲綆酌?。但問題是訓練需要反復執行這些操作,不斷地更新網絡參數,以減少訓練誤差。

適度的大型網絡從零開始,在配備一個高性能的GPU的工作站中,基于大型、真實的數據集進行訓練,可能需要花費數小時到數天的時間。通過在同一臺機器上使用多個GPU,或是在有多個GPU的機器集群中訓練,可以縮短花費的時間。由于云計算供應商提供相關服務,這些設備并不像聽起來那么讓人望而卻步。DAWNBench是美國斯坦福大學提出的一項有趣的倡議,旨在提供基于公共數據的、常見的深度學習任務的訓練時間和云計算耗時的基準。

如果你在學習第2部分的時候沒有GPU,我們建議你查看各種云平臺提供的產品,其中許多云平臺都提供預裝有PyTorch的、支持GPU的Jupyter Notebook,且通常提供一定的免費配額。谷歌的Colaboratory是一個不錯的選擇。

最后要考慮的是操作系統。PyTorch從發布之初就支持Linux和macOS,并在2018年開始支持Windows。由于目前蘋果筆記本計算機沒有配備支持CUDA的GPU,因此PyTorch預編譯macOS的軟件包只支持CPU。在本書中,我們盡量不去假設你在一個特定的操作系統中運行,盡管第2部分的一些腳本表明這些是在Linux下的Bash提示符下運行的,但這些腳本很容易轉換為與Windows兼容的格式。為了方便,代碼將盡可能地像在Jupyter Notebook上運行一樣展示出來。

有關安裝信息,請參閱PyTorch官方網站的入門指南。我們建議Windows用戶使用Anaconda或Miniconda進行安裝。用戶若使用其他操作系統,如Linux,通常有很多可行的選擇,其中pip是Python最常用的包管理器。我們提供了一個名為requirements.txt的文件,pip可以按照該文件來安裝依賴項。當然,有經驗的用戶可以自由地采用與你首選的開發環境最兼容的方式安裝軟件包。

第2部分還需要一些下載帶寬和磁盤空間。在第2部分中,癌癥檢測項目所需要的原始數據大約需要60GB的下載空間,解壓后大約需要120GB的空間,壓縮包可以在解壓之后刪除。另外,鑒于性能的原因一些數據需要被緩存,訓練時還將需要80GB的空間。因此系統至少需要200GB的可用磁盤空間用于訓練。雖然可以使用網絡存儲來實現此目的,但如果訪問網絡存儲的速度慢于訪問本地磁盤的速度,那么可能會對訓練速度造成影響。最好本地SSD上有一些空間用來存儲數據,以便快速檢索。

使用Jupyter Notebook

我們假設你已經安裝了PyTorch和其他依賴項,并且已經驗證了一切正常。在前面章節中,我們提到了跟隨書中代碼進行操作的可行性,在示例代碼中,我們大量使用Jupyter Notebook。Jupyter Notebook在瀏覽器中顯示為一個頁面,通過它,我們可以交互式地運行代碼。代碼由內核執行,內核是一個運行在服務器上的進程,它隨時準備接收要執行的代碼并返回結果,然后在頁面上以內聯方式呈現結果。Notebook在內存中維護內核的狀態,就像代碼求值期間定義的變量一樣,直到內核被終止或重新啟動。我們與Notebook交互的基本單元是單元格:頁面上的輸入框。我們在這里輸入代碼,然后讓內存對其進行執行(通過菜單中的命令或按<Shift+Enter>組合鍵)。我們可以在Notebook中添加多個單元格,新的單元格能夠識別我們在之前的單元格中創建的變量。代碼執行后,單元格最后一行返回的值將輸出在單元格正下方,繪圖也是如此。通過混合源代碼、運算結果和Markdown格式的文本單元格,我們可以生成漂亮的交互式文檔。你可以在項目網站(Jupyter官網)上閱讀關于Jupyter Notebook的所有信息。

此時,你需要從GitHub上下載的Jupyter Notebook代碼的根目錄下啟動Notebook服務器。具體如何啟動服務取決于你的操作系統以及你安裝Jupyter Notebook的方式和位置。如果你有任何問題,可以在本書的論壇上提問[5]。一旦啟動了Jupyter Notebook,你的默認瀏覽器將會彈出一個本地Notebook文件列表。

注意 

Jupyter Notebook是一個通過代碼來表達和研究想法的強大工具。盡管我們認為它很適合本書的用例,但它并不合適所有用例。我們認為,集中精力消除分歧和最小化認知開銷是很重要的,畢竟每個人的想法都可能是不同的。

書中所有代碼清單的完整代碼都可以在本書網站以及GitHub代碼倉庫中找到。

主站蜘蛛池模板: 民和| 莫力| 新田县| 湖口县| 东安县| 中江县| 小金县| 喜德县| 安仁县| 邻水| 岗巴县| 宁陕县| 靖边县| 玛曲县| 叙永县| 抚州市| 元朗区| 万山特区| 濉溪县| 保德县| 贡山| 平舆县| 文成县| 商都县| 永德县| 孟津县| 家居| 醴陵市| 克拉玛依市| 江城| 梅河口市| 巴彦县| 汨罗市| 鄂州市| 墨竹工卡县| 龙泉市| 永宁县| 饶河县| 镇平县| 阆中市| 迭部县|