<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                https://www.jiqizhixin.com/articles/753219c6-428d-4432-be93-06911dc9c98f [TOC] > *本文作者 Tim Dettmers 是瑞士盧加諾大學信息學碩士,熱衷于開發自己的 GPU 集群和算法來加速深度學習。[本文](http://timdettmers.com/2014/08/14/which-gpu-for-deep-learning/)的最早版本發布于 2014 年 8 月,之后隨著相關技術的發展和硬件的更新,Dettmers 也在不斷對本文進行修正,截至目前已經進行了 5 次較大的更新。機器之心今天呈現的這篇是其 2016 年 6 月 25 日的最新更新:「重新編輯了多 GPU 部分;因為不再有重大作用,去掉了簡單的神經網絡內存部分;擴展了卷積內存部分;對 AWS 部分進行了刪節,因為不再有實效;增加了我對 Xeon Phi 的看法;更新了 GTX 1000 系列。」而除了 GPU 之外,深度學習還需要其它一些硬件基礎,詳情可參閱機器之心之前的文章《**[深度 | 史上最全面的深度學習硬件指南](http://mp.weixin.qq.com/s?__biz=MzA3MzI4MjgzMw==&mid=402261356&idx=1&sn=f66ee62b002b8a9879d3c428f846e440&scene=21#wechat_redirect)》。* 當你在深度學習中使用 GPU 時,你會一次又一次地為它帶來的速度提升而感到驚嘆:在一般問題中能獲得相對于 CPU 快 5 倍的速度提升,在一些更大的問題中還能獲得相對快 10 倍的速度提升。在 GPU 的幫助下,你可以更快地試驗新的想法、算法和實驗,并迅速得到反饋——哪些是可行的、哪些是不可行的。如果你對深度學習是認真的,那么你一定要使用 GPU。但是,你應該選擇哪一種呢?在這篇博客中我將指導你選擇一款最適合你的 GPU。 擁有一個快速的 GPU 對深度學習的初學者來說是非常重要的,因為它可以使你迅速獲得有助于構建專業知識的實踐經驗,這些專業知識可以幫助你將深度學習應用到新問題上。沒有這種迅速的反饋,從錯誤中汲取經驗將會花費太多時間,會使人在繼續深度學習的過程中感到受挫和沮喪。在 GPU 的幫助下,我很快就學會了如何在一系列 Kaggle 競賽中應用深度學習,并且在 Partly Sunny with a Chance of Hashtags Kaggle 競賽上獲得了第二名,競賽內容是通過一個給定的 Twitter 預測氣象等級。比賽中,我使用了一個相當大的帶有修正線性單元(rectified linear units)和 dropout 的兩層深度神經網絡進行正則化(regularization),而且勉強才能塞進我的6GB GPU 內存里。 **應該使用多個 GPU 嗎?** 在 GPU 的幫助下,深度學習可以完成很多事情,這讓我感到興奮。我投入了到多 GPU 的領域之中,用 InfiniBand 40Gbit/s 的互連組裝了小型 GPU 集群。我非常激動地想了解多個 GPU 能否獲得更好的結果。我很快就發現,在多個 GPU 上,不僅神經網絡難以進行有效的并行化,對普通的密集神經網絡加速效果也很一般。小型神經網絡可以并行并且有效地利用數據并行性,但對于大一點的神經網絡,例如我在 Partly Sunny with a Chance of Hashtags Kaggle比賽中使用的,就幾乎沒有加速效果。 隨后,我進一步試驗,對比 32 位的方法,[我開發了帶有模型并行性的新型的 8 位壓縮技術](http://arxiv.org/abs/1511.04561),該技術能更有效地并行處理密集或全連接的神經網絡層。 然而,并行化失敗了。我天真地為一系列問題對并行算法進行了優化,但只發現即使有優化過的自定義代碼,它的效果也并不好——考慮到你所付出的努力。你需要非常了解你的硬件及其與深度學習算法交互的方式,這樣你一開始就能衡量你是否可以受益于并行化。 ![3060781-inline-i-2-microsoft-boosts-its-bot-future-by-acquiring-wand.jpg](https://www.jiqizhixin.com/data/upload/ueditor/20160719/578df760999f3.jpg "3060781-inline-i-2-microsoft-boosts-its-bot-future-by-acquiring-wand.jpg") *我的電腦主機配置:你可以看到三個 GXT Titan 和一個 InfiniBand 卡。對于深度學習來說,這是一個好的配置嗎?* 然而,在并行化上還有一些不那么專業的問題。例如,卷積層很容易并行化和很好地擴展。很多框架也支持這種并行性;對大多數框架來說(比如 TensorFlow、Caffe、Theano 和 Torch),如果你使用 4 個 GPU,通常會加速約 2.5-3 倍;而對于優化過的研究代碼,大約會有 3.6-3.8 倍的加速。微軟的 CNTK 擁有最好的并行化性能,其與研究代碼相近。CNTK 有一個缺點:它目前非常難使用,因為其使用了配置文件(config files),而非庫 API。 目前我在微軟研究院做實習生,我將致力于 CNTK,我可以告訴您,API 與并行性能都將會獲得顯著的提升。 這些變化使得在多 GPU 和多計算機下的并行化可以達到使普通用戶能很容易受益于不同類型深度學習模型的快速訓練的程度,無論是卷積網絡、循環網絡、還是全連接網絡。 使用多 GPU 的另外一個好處是你可以分別在每個 GPU 上運行多個算法或實驗。其速度沒有變快,但你能一次性通過使用不同的算法或參數得到更多性能信息。如果你的主要目標是盡快獲得深度學習經驗,這是非常有用的,而且它對想同時測試新算法的不同版本的研究者也非常有用。 如果你想要學習深度學習,這對你的心理是很重要的。執行任務的間隔以及得到反饋信息的時間越短,大腦越能將相關的記憶片段整合成連貫的畫面。如果你在小數據集上使用獨立的 GPU 訓練兩個卷積網絡,你就能更快地知道什么對于性能優良來說是重要的;你將更容易地檢測到在交叉驗證誤差的模式,并正確地解釋它們——即對于哪些你需要調整的模式,你需要添加、移除或調整哪些參數與層。 所以總的來說,一個 GPU 對所有任務來說就已經足夠了,但多個 GPU 對于加速你的深度學習模型來說越來越重要。如果你想快速學習深度學習,多個廉價的 GPU 也很好。 **應該使用哪種加速器呢?NVIDIA、AMD、或 Xeon Phi?** NVIDIA 的標準庫使得在 CUDA 中建立第一個深度學習庫很容易,但沒有適合 AMD的 OpenCL 的那樣強大的標準庫。目前還沒有適合 AMD 顯卡的深度學習庫——所以只能選擇 NVIDIA 了。即使未來一些 OpenCL 庫可用,我仍會堅持使用 NVIDIA:因為對于 CUDA 來說,GPU 計算或者 GPGPU 社區是很大的,而對于 OpenCL 來說則較小。因此,在 CUDA 社區,好的開源解決方案和為編程提供可靠的建議是現成的。 此外,NVIDIA 公司現在對深度學習抱有很大信心。他們押注深度學習在未來十年會發展壯大,但你在 AMD 公司身上就看不到這樣的信心。 至于 Xeon Phi,其廣告宣稱你能夠使用標準的 C 代碼,并可將代碼輕松轉換成加速過的 Xeon Phi 代碼。該功能聽起來很有趣,因為你可能認為你可以依靠龐大的 C 代碼資源。然而,事實上,其只支持非常小部分的 C 代碼,因此該功能并不真正有用,大部分的 C 運行起來是很緩慢的。 我曾研究過超過 500 個 Xeon Phi 的集群,遭遇了無止盡的挫折。我不能運行我的單元測試(unit test),因為 Xeon Phi的 MKL(數學核心函數庫)并不兼容 NumPy;我不得不重寫大部分代碼,因為英特爾 Xeon Phi 編譯器無法讓模板做出適當約簡。例如,switch 語句,我不得不改變我的 C 接口,因為英特爾編譯器不支持 C++ 11的一些特性。這一切導致了在沒有單元測試的情況下來執行代碼的重構。它花了很長時間。這真是地獄啊。 隨后當我的代碼被執行時,一切都運行得很慢。如果你的操作的張量(tensor)的尺寸連續變化,線程調度器(thread scheduler)中的漏洞或問題會削弱性能。例如,如果你有不同大小的全連接層或 dropout 層,Xeon Phi 會比 CPU 還慢。所以,如果你想做深度學習,遠離 Xeon Phi! **了解卷積神經網絡的基本內存需求** 當你在選擇合適的 GPU 時,你得知道自己使用深度學習所要解決的問題需要多大的內存。因此接下來的兩段文字會探討卷積神經網絡的內存消耗,讓你可以確保自己的 GPU 有足夠滿足需要的內存,但又不會太多,這樣能節省點錢。 卷積神經網絡的內存需求非常不同于簡單的神經網絡。你可能會認為前者的參數更少因此需要更少內存。如果只是保存網絡文件,這沒什么不對,但要想訓練它的話情況就不同了。 每個卷積層的激活(activation)和誤差(error)相較于簡單的神經網絡來說都是巨大的,而正是它們占用了內存的主要部分。將激活和誤差的大小加起來,我們就可以確定出大概的內存需求。然而要確定網絡中哪種狀態下激活和誤差的尺寸大小是很難的。一般來說,前幾層網絡會占用很多內存,所以主要內存需求就來源于你的輸入數據大小,因此可以率先考慮你的輸入數據。 通常 ImageNet 使用的輸入維度(input dimensions)是224×224×3,即 224×224 像素的 3 色信道圖片。要在 ImageNet 上得到當下最先進的結果至少需要 12GB 內存,而在一個 112×112×3 維的類似數據集上我們可能只需 4-6 GB 內存。另一方面,對于一個輸入尺寸為 25×75×75×3 的視頻數據集來說,12GB 內存可能遠給不了你想要的好效果。 然而另一個重要方面就是數據集中的樣本數量。比如你只取了 ImageNet 數據集圖像中 10% 的樣本,然后你的模型很快就會過擬合(只是沒有足夠多的樣本來很好地訓練),因此你那個消耗遠遠更少內存的小網絡將足以與卷積網的性能媲美,所以 4GB 左右或更少的內存對于這項任務來說都綽綽有余。這就意味著圖像越少,反過來所需內存就越少。 標簽的分類數量也是同樣的道理。如果你從 ImageNet 數據集中只選取了 2 個分類來建立模型,那么相較于擁有 1000 個分類的模型,它將消耗更少的內存。這就是這樣:如果你有更少的需要彼此區分的分類,那么過擬合就會出現得快得多,或者換句話說,相比于區分 1000 個分類,區分 2 個分類所需的參數要少得多。 有關這些準則的一個實際例子是 Kaggle 的浮游生物檢測比賽。起初我認為,用自己的 4 GPU 系統來參加比賽可能會有巨大優勢。我以為自己或許能夠在很短時間內訓練出一個龐大的卷積網絡——還有一點就是別人都缺少這樣的硬件。然而由于數據集過小(50×50 像素,雙色信道,40 萬張訓練圖像;大約 100 個分類),我很快意識到即使對于一個大小剛好夠放入一個訓練很快的小 GPU 的小網絡來說,過擬合也是一個問題。所以多個 GPU 并沒有多少速度方面的優勢,而大 GPU 內存更沒有任何優勢可言。因此對于這種任務,一個4-6 GB 內存的小 GPU 就足以達到很好的效果。 雖然此例中我的內存是足夠的,但你最終會遇到內存不足的情況。然而你并不需要為這個問題而買一個新 GPU,可能只需使用一個簡單的內存減小技術(memory reduction technique)。 **內存減小技術及其效果** 一種方法是使用更大步態(strides )的卷積核(convolutional kernels),也就是不對每個像素都應用批形式的(patch-wise)卷積,而是針對每 2 個或 4 個像素(即2或4個步態),這樣就能產生較少的輸出數據。輸入層通常使用這種方法,因為它消耗了大部分的內存。 另一種減少內存占用的訣竅是引入一個能夠減少維度的 1×1 卷積核層。例如 96 個 1×1 的卷積核能夠使 64×64×256 大小的輸入數據降為 64×64×96。 還有一個顯著的技術是池化(pooling)。一個 2×2 的池化層將減少四層的數據量,從而大大減少了后續層的內存占用。 如果這些方法都不管用,你總是可以嘗試減少 mini-batch 的大小。mini-batch 尺寸是一個非常重要的內存影響因素。 大小為 64 的批(batch)會比大小為 128 的批減少一半內存消耗。然而訓練時間可能也會更久,特別是在訓練的最后階段,為了得到準確的梯度,它顯得更加重要。大多數卷積運算也為大小為 64 或更大的 mini-batch 進行了優化,因而從 32 大小的批開始,訓練速度會大大減小。所以縮小 mini-batch 的大小到或者甚至低于 32,只應作為最后的對策。 另一個經常被忽視的方法是改變卷積網絡所使用的數據類型。將 32 位換為 16 位,你就可以輕松減半內存消耗且不會降低分類性能。將它運用在 P100 Tesla 卡中,這甚至能給你帶來巨大的提速。 那么將這些內存減小技術應用在實際數據中會怎樣? 如果我們采用 128 大小的批,3 色通道的 250×250 像素圖片(250×250×3)做為輸入,3×3 卷積核增長步長為32,64,96…,則我們將有大致如下、僅包含誤差及激活的內存占用情況: > ***92MB→1906MB→3720MB->5444MB->…*** 此時內存將很快被擠爆。如果現在我們使用 16 位而非 32 位的數據類型,上面的數字就可降為一半;64 大小的批同理。同時使用 64 大小的批及 16 位的數據類型將使內存占用減為原先的四分之一。然而我們仍然會需要大量內存來訓練一個更多層的深度網絡。 如果我們為第一層數據加 2 個步態則會帶來哪些改變——后面跟著一個 2×2 的最大池化( max pooling)? > *92MB (輸入)->952MB (卷積)->238MB (池化)->240MB (卷積)->340MB (卷積)→….* 這看起來更易于管理。在處理多達 20 至 30 層的網絡時,我們仍然會遇到內存問題,而你只能應用另一個最大池化或其他技術。例如 32 個 1×1 的卷積核可將最后一層數據大小從 340MB 降為僅僅 113MB,因此我們能夠輕松擴展更多層的網絡而不會出現任何問題。 一旦你廣泛使用了最大池化、跨越式(striding)和 1×1 卷積核,你將在這些層處理過程中扔掉非常多的信息,網絡缺少數據來工作,以至于損害到模型的預測性能。因此當這些技術能夠非常有效地減小內存消耗時,你應當小心地使用它們。隨著時間的推移,你在訓練卷積神經網絡時會學到的一件事情就是,如何最佳混合這些技術來得到一個良好的結果,且不會遇到任何內存問題。 **了解卷積神經網絡的臨時內存需求** 上文所解釋的是卷積神經網絡內存消耗的主要來源以及緩解內存問題的方法。然而還有另一層不太重要且更難理解的內存消耗問題,但它也可能給出最佳的網絡解決方案,或許能幫你確定深度學習任務的實際內存需求。 一般有三種類型的卷積實現方式。一種方式是采用傅里葉變換,其他兩種都是先重新調整內存計算來直接做數據計算。這種調整要么發生在逐像素計算的類似批的結構中,要么發生于使用矩陣乘法計算卷積的矩陣結構中。 ![latex.png](https://www.jiqizhixin.com/data/upload/ueditor/20160719/578df7ef5367e.png "latex.png") *濫用符號的連續卷積定理:輸入函數表示一個圖像或特征映射,減去 x0 可看做是創建寬度與 x 相關的圖像批,然后再乘以核(*kernel)*。最后的結果在傅里葉域中是連乘形式;這里表示一個傅立葉變換函數。對于離散「維度」(x),我們運用累加而不是積分——不過思路都是相同的。* 卷積的數學運算可以用傅里葉頻域里一個簡單的元素方式的矩陣乘法來描述。因此可在輸入以及每個卷積核上執行一個快速的傅立葉變換,并將這些元素形式的相乘以得到特征映射——卷積層的輸出。在向后傳播的過程中,我們做一個快速的傅立葉逆變換來接收標準域中的梯度以更新權重。理想情況下,我們將所有的傅立葉變換存儲在內存中,從而節省每個過程中分配內存的時間。這可能會增加很多額外內存,而這是為卷積網絡的傅立葉方法所添加的內存塊——保留所有這些內存只是為了讓一切順利進行。 這種方法顯然是最快的卷積方法。通過 Winograd 快速傅里葉變換,這種卷積技術在流行的 3×3 卷積核上運行飛快。當然運用快速傅立葉變換方法的其他卷積核通常是最快。 然而這種方法會占用相當多的內存,不過這個領域的研究仍然很活躍,使用快速傅里葉變換的核在性能和內存上都非常高效,而核還在變得更好。其他兩種直接操作圖像塊的方法是為重疊的批重新分配內存來實現連續的內存訪問。緩慢的內存訪問可能是對算法性能的最大傷害。連續內存中的內存預取與校準能使卷積運算速度運行更快。 連續內存意味著所有內存地址都相比鄰——沒有「越級」索引——并且能實現更快的內存讀取。或者你可以安排矩陣內部的內存,然后使矩陣相乘以達到相同效果。既然矩陣乘法已經被高度優化,這對一個運行良好的卷積運算來說也是一個很好的策略。有關運用這種方法計算卷積的更多內容可參看 CUDA 代碼,但是對輸入或像素數據的預取是增加內存使用的主要原因。 由于一些條目被重復,矩陣乘法的變量使用了相對更多的內存,但這種方法在以批的方式計算卷積時往往比已過時的方法快一點。 我希望這部分內容給出了卷積神經網絡中內存問題的相關思路。現在我們來看看一些實際的建議。 **給定預算下的最快 GPU** 處理性能最常由每秒浮點運算來測量(FLOPS)。這種測量標準往往被用在 GPU 計算的廣告宣傳中,它還確定了超級計算機領域的世界前 500 強名單。然而這種測量方式是帶有誤導性的,因為它測量的處理性能,所針對的是不會出現在現實世界中的問題。 原來最重要的可實踐性 GPU 性能測量是以 GB/s 為單位的內存帶寬,它衡量了內存每秒可讀取的數據大小。內存帶寬非常重要,因為幾乎所有的數學運算,比如矩陣乘法、點積、求和等等,都有帶寬限制,即受限于可從內存中提取多少數字,而非給定數字量的情況下可執行多少計算。 還有一些其他原因能夠解釋為什么 GPU 非常適合深度學習等許多計算任務;如果你想更深入地了解 GPU,可以閱讀我在 Quora 上面的回答:「為什么 GPU 非常適合深度學習?」鏈接:[https://www.quora.com/Why-are-GPUs-well-suited-to-deep-learning/answer/Tim-Dettmers-1](https://www.quora.com/Why-are-GPUs-well-suited-to-deep-learning/answer/Tim-Dettmers-1) ![tesla-autopilot-crash-aftermath.png](https://www.jiqizhixin.com/data/upload/ueditor/20160719/578df7bf119d4.png "tesla-autopilot-crash-aftermath.png") *CPU 和 GPU 隨時間變化的帶寬比較:帶寬是 GPU 比 CPU 的計算速度更快的主要原因之一。* 帶寬可直接在同一架構內進行比較,例如直接查看兩張 Pascal 卡(如 GTX 1080 與 GTX 1070 )的內存帶寬來比較其性能。然而不同架構之間不能直接比較,像是 Pascal 的 GTX 1080 與 Maxwell 的 GTX Titan X,因為各自給定的內存帶寬架構是非常不同的。這使得一切都有點棘手,但總的說來帶寬能給你一個有關 GPU 大致運行速度的良好概述。要確定一個給定預算下的最快 GPU 類型,可以使用這篇維基百科中的內容(http://en.wikipedia.org/wiki/List_of_Nvidia_graphics_processing_units#GeForce_700_Series),看一下它的帶寬是多少 GB/s;其中列出的較新款顯卡價格是相當準確的(900 和 1000 系列),但是舊款卡價格明顯低于列表中的價格——尤其當你通過 eBay 網購時。比如一張正版 GTX Titan 在 eBay 上賣 $350 左右、 GTX 970 賣 $210。 然而另一個需要考慮的因素是,并非所有架構都與 cuDNN 兼容。由于幾乎所有的深度學習庫都使用 cuDNN 做卷積運算,這就限制了對于 Kepler ?GPU 或更好 GPU 的選擇,即 GTX 600 系列或以上版本。另外 Kepler ?GPU 通常會很慢。因此這就意味著你應該選擇 900 或 1000 系列 GPU 來獲得更好的性能。 為了粗略估計出深度學習任務中的顯卡性能比較,我創建了一個簡單的GPU等價表。如何閱讀它呢?例如 GTX 980 的速度相當于 0.45 個 GTX 1080,或是 GTX 1080 的速度是 GTX 980 的兩倍以上。 * GTX 1080 = 0.8 GTX 1070 = 0.66 GTX Titan X = 0.66 GTX 980 Ti = 0.45 GTX 980 * GTX 1080 = 0.4 GTX 970 = 0.33 GTX Titan = 0.2 AWS GPU instance (g2.2 and g2.8) = 0.2 GTX 960 通常我會推薦 GTX 1080 或 GTX 1070。二者都很卓越,如果你能承受 GTX 1080 的價格當然更好。GTX 1070 更便宜些且速度仍比 GTX Titan X 快。 然而這兩個卡的問題是它們的8GB內存。這個內存容量對于大多數任務來說是相當充足的,比如 Kaggle 競賽、大多數的數據集、深度且自然的語言理解任務。但是對研究人員而言,尤其是 ImageNet 的研究者,在處理擁有龐大背景資料的視頻數據或自然語言理解任務時,選擇 12GB 內存的 GTX Titan X 會更好——這里內存就尤為重要。 如果你缺錢的話就沒有任何辦法了。亞馬遜網頁服務上的 GPU 實例是相當昂貴且龜速的,沒錢就買不到好東西。你可以到 eBay 上以 $210 買一個過得去的 GTX 970,但也有一些與此相關的內存問題(見下文)。 另一個選擇是從 eBay 購買正版 GTX Titan;不過 $350 也已經相當貴了。GTX 680 和 GTX 960 也是較為便宜的選擇,它們通常在 $200 以下,但是相較于其他更成熟的 GPU 則是相當慢。 **廉價而困擾** GTX 970 是一個你需要留意的特例,其架構較為怪異,內存使用超過 3.5GB 時性能可能會被削弱,因此對于大的卷積神經網絡的訓練就很麻煩。這個問題在新聞報道中已經相當戲劇化地變多了起來,但事實證明整個問題對于深度學習來說并不像原始基準表現的那樣戲劇化:如果不超過 3.75GB,它仍然比 GTX 960 要快。 不管怎樣 GTX 970 是一款用來學習深度學習的優秀 GPU。它還適合于大多數未涉及太多數據的 Kaggle 數據集。 如果你不想要所有這些麻煩,那么就去 eBay 購買一個不會造成麻煩的正版 GTX Titan 或者一個便宜的 4GB GTX 960。 **亞馬遜網絡服務(AWS)中的 GPU 實例** 在這篇博文的前一個版本中,我推薦了 AWS GPU 的現貨實例,但現在我不會再推薦它了。目前 AWS 上的 GPU 相當慢(一個 GTX 1080 的速度是 AWS GPU 的五倍)并且其價格在過去的幾個月里急劇上升。現在看起來購買自己的 GPU 又似乎更為明智了。 **總結** 運用這篇文章里的所有信息,你應該能通過平衡內存大小的需要、帶寬速度GB/s以及 GPU 的價格來找到合適的 GPU 了,這些推理在未來許多年中都會是可靠的。但現在我所推薦的是 GTX 1080 或 GTX 1070,只要價格可以接受就行;而如果你是一位研究人員,或許會想要一個 GTX TITAN X。 如果你缺少硬件投資資金并且可以接受一定的內存限制,那么 GTX 970 對于中等大小及以下的數據集來說就是個可靠的選擇。如果想減少麻煩,一個eBay 上的正版 GTX Titan 將是極好的。GTX 680 和 GTX 960 最便宜,同時也是最慢的GPU。 如果你真的很缺錢,目前尚沒有其他好的選項。 **總結性建議** * 總的說來最好的 GPU:GTX 1080 和 GTX Titan X * 有成本效益但價格高的:eBay 上的 GTX Titan X , GTX 1070 * 有成本效益但麻煩多的:GTX 970(有內存問題) * 最便宜的卡片而且沒有麻煩:eBay 上正規的 GTX Titan * 我的數據集大于 250GB:GTX Titan * 我錢不多:eBay上的 GTX 680 4GB ? 或者 GTX 960 4GB * 我幾乎沒錢:尚待解決;深度學習是為壕準備的 * 我參加 Kaggle 比賽:GTX 1070 或者 GTX 970 * 我是一名研究人員:至少需要一個 GTX TITAN X 和 1-4 GTX 1080 來做原型 * 我想建立一個 GPU 集群:這真的很復雜,你可以從這里得到一些思路:https://timdettmers.wordpress.com/2014/09/21/how-to-build-and-use-a-multi-gpu-system-for-deep-learning/ * 我剛開始進行深度學習,并且我是認真的:以 eBay 上的 GTX 970 開始對小數據集上的深度學習有個大致感受;如果你想參加 Kaggle 比賽或進行正規深度學習,就把 GTX 970 賣了并升級到 GTX 1080 ;如果你想做研究的話,就升級為 GTX Titan X。 聲明:本文由機器之心編譯出品,原文來自Tim Dettmers Blog,作者Tim Dettmers,轉載請查看要求,機器之心對于違規侵權者保有法律追訴權。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看