MacBook Pro適合深度學習嗎?

題主搞深度學習視覺,了解的人知道深度學習的深層網路訓練比較耗內存,但是身為妹子平時又不想背個遊戲本到處跑…所以想問MacBook Pro上寫深度學習代碼怎麼樣,目前的想法是在上面寫代碼,然後在實驗室台式機上編譯運行,或者有沒有其他更好的方案?

求大佬們推薦合適的輕薄本以及寫/處理代碼方案~


所以想問MacBook Pro上寫深度學習代碼怎麼樣,目前的想法是在上面寫代碼,然後在實驗室台式機上編譯運行,或者有沒有其他更好的方案?

這個方案當然沒問題啊。

我每天都在 MacBook Pro 上寫代碼,然後遠程讓隔壁的台式機跑程序。哪能讓高貴的 MacBook Pro 去做苦力活呢!台式機裝的是 Ubuntu 系統,完全不影響使用 macOS 操作系統。

而且目前主流的深度學習庫基本上都是支持 Linux 的同時,也支持 macOS 的,比如 tensorflow,pytorch 等。

對了,jupyter notebook 非常好用,用它寫代碼的感覺基本和在本地沒差別。使用方法是在台式機上跑這個命令:

jupyter notebook --ip=0.0.0.0

在 macOS 上寫代碼,然後在 Linux 台式機上跑代碼的優點:

  • 屏幕解析度高
  • 字體看起來更舒服
  • 不用忍受電腦在高性能運算時的發熱,雜訊等問題
  • macOS 支持各種軟體,比如微信,截圖,以及各種 Linux 上沒有的軟體

一些小問題:

  • 需要事先將文件傳輸到台式機上(所以更好的方法是在台式機上下載)
  • 偶爾程序崩潰了會卡顯存,需要去隔壁按一下重啟

不過這個方案不適合沒有台式機,只打算用 MacBook Pro 跑深度學習程序的人。

既然有人說,手機也可以玩深度學習,普通電腦也都合適,我就說幾點不合適的地方:

  • 手機虛擬鍵盤不方便寫代碼
  • 手機屏幕小,看起來比較累,而且觸屏操作起來會很麻煩
  • 普通 Windows 電腦沒有 macOS 那麼好用的終端(iTerm2),也沒有對應的 Linux 命令,比如 ssh,scp
  • 普通 Windows 電腦沒有 UNIX 環境,比如在使用 OpenCV 的時候, macOS 和 linux 的編譯方式是一樣的,但是 Windows 不一樣,要用 Visual Studio 編譯
  • 一旦離開了台式機的環境,macOS 還能夠繼續調試 tensorflow,pytorch 等框架的代碼, 跑通了以後可以直接在台式機上完整運行,但是手機啥也幹不了,Windows 電腦在某些框架上還沒有支持,比如 pytorch
  • 普通筆記本裝 Linux 可能會有坑,比如驅動問題,裝好以後不適合拿來當主力機用,比如沒有微信等軟體

綜上,我認為買 MacBook Pro 是最合適的。

更新:

有人提到 jupyter 允許所有人連接不安全,那我就來詳細說一下。

首先我這句命令只是一個允許內網其他終端連接的一個例子,它並不是錯的,事實上我一直在用。在內網中如果沒有其他閑雜人等連接,是非常安全的,外網用戶無法連接到內網的伺服器,進而黑掉伺服器。除非你把實驗室的台式機搬到咖啡廳連公共 WiFi,不然不用擔心會被不認識的人中間人攻擊。

如果按 ssh 的做法,是不能保證其他用戶也能連接的。根據題主的需求,應該是實驗室的設備,肯定不止一個人用,所以最安全的做法是弄一個Let』s Encrypt 證書,然後買個域名,設置域名解析為內網 IP,以 https://伺服器IP:8888 的形式訪問,可以保證安全性。參考鏈接:Running a notebook server

事實上我的 NAS 正是這樣做的,只不過使用的是阿里雲證書,免費的,一年有效期,省折騰。Let』s Encrypt 是每個月都需要續簽的,需要配置自動運行的腳本。

上圖就是 jupyter 使用 https 證書的樣子,可以防範中間人攻擊。不過話又說回來,沒有人會專門去實驗室門口蹭 WiFi,然後進行中間人攻擊,就為了蹭到 jupyter 的密碼,然後把伺服器上的文件都刪掉。

與其防範這個,不如平時養成良好的備份習慣,買個 nas 定期備份,畢竟機器上重要的東西就是一些代碼和數據,防了中間人攻擊,哪天出個 0day 照樣防不住。


既然是妹子的問題! 都給我閃開。

請放心大膽的用吧,沒有問題。畢竟自己的工具就是要自己喜歡,那些說不合適的,明明是沒錢買Macbook。

我現在也是一個X260+Linux寫代碼,然後伺服器上跑,和Macbook的工作流程沒兩樣。

放寬心,Macbook我也有7年使用經驗,不會瞎說,只是最近吃土才換的Thinkpad,也可能是蘋果價格越來越感人。

另外,框架推薦Pytorch,你會愛上他的。

===================================

夷,我為什麼要匿名,這個問題白回答了......


看到很多回答都文不對題,題主已經說了

目前的想法是在上面寫代碼,然後在實驗室台式機上編譯運行

那麼這個問題就跟MacBook Pro是什麼顯卡顯存多少沒關係了,題主只需要考慮rmbp適不適合自己寫代碼就行了,這個問題知乎上已經有很多解答了。

我自己就是在mac上寫在實驗室機器上跑,通過teamviewer可以遠程連接,有圖形化界面,也可以傳文件,很方便,通過ssh連接也很方便。


既然只寫代碼,在別的機器上編譯運行,那隨便一個輕薄本就行了,為啥要買這麼重的pro?


@楊博

實名贊一發

不過這依然不是最優雅和安全的,jupyter notebook 是沒有對敏感命令進行隔離的,比如 Python 亂碼指北:一行刪掉根目錄 @xlzd 大佬就演示了如何一句話 rm rf *

所以最佳的食用方式是 jupyterhub/jupyterhub + jupyter-attic/dashboards_server ,然後利用官方給出的 Docker 方式進行部署,jupyterhub/jupyterhub-deploy-docker ,這樣的好處在於,每個用戶的jupyter都在獨立的一個 docker 容器里運行,同時它支持多種的Auth方案,也可以自定義校驗,這樣可以達到你想把你的台式機上的 notebook 借給別人用用也沒問題的 ,隨便折騰嘛。

同時最好的 Notebook 可以方便的放在 Dashboard 上展示,實現展示分離,效果良好,可以說是非常適合科研黨食用了,另外 Dashboard 利用 Password.js 也實現了自定義校驗和常見的 OAuth 校驗。可以說是非常的清真。

另外,這些東西都可以外掛證書,改造成 https,非常實用清真,建議服用。


在消費筆記本和台式機上跑神經網路都是不現實的,只能用來寫代碼。


講道理我是這麼乾的。我們實驗室若干人+80%我見過的外國同行也是這樣。mbp+伺服器


適合寫代碼不適合直接跑跑運算量大的程序;主要為了屏幕,比較淺的鍵盤和部分 app。

雖然 mac os 下面 pkg manager 一個好的都沒有

另外千萬用 Homebrew 而不要 macports;否則喵的你為了更新貓而寫了一堆自己的 pkgbuild


實名反對高票答案 楊培文:MacBook Pro適合深度學習嗎? 。那種--ip=0.0.0.0的做法一點安全性都沒有,是錯的。你要知道,TCP是明文傳輸,沒有任何加密的哦。如果碰上中間人攻擊,可以輕鬆黑掉你的伺服器。

Jupyter Notebook的正確用法應該是原樣監聽localhost,然後用ssh tunnel連接Jupyter Notebook。

正確用法一條命令就夠了,大家記住了:

ssh your_user_name@your_host_name -L 8885:localhost:8885 -t jupyter notebook --port=8885

然後你就會看到這樣的東西:

[I 23:04:43.409 NotebookApp] Serving notebooks from local directory: /home/your_user_name
[I 23:04:43.410 NotebookApp] 0 active kernels
[I 23:04:43.410 NotebookApp] The Jupyter Notebook is running at: http://localhost:8885/?token=b8321a4b69f0dd556e3425f0a73f3b1bf443523cd454e45e
[I 23:04:43.410 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
[W 23:04:43.410 NotebookApp] No web browser found: could not locate runnable browser.
[C 23:04:43.410 NotebookApp]

Copy/paste this URL into your browser when you connect for the first time,
to login with a token:
http://localhost:8885/?token=b8321a4b69f0dd556e3425f0a73f3b1bf443523cd454e45e

最後用瀏覽器打開 http://localhost:8885/?token=b8321a4b69f0dd556e3425f0a73f3b1bf443523cd454e45e 就可以愉悅的使用DeepLearning.scala 了。


你這個需求不如買個高端的 Windows 本裝個 Linux。。。


任何輕薄本都可以,以及最好的「Linux 發行版」是Windows 10 Fall Creators Update


如果在伺服器上裝vim,tmux,配置好後直接ssh連上去敲代碼。

你所需要的只是一台能ssh的筆記本而已,很顯然mbp是能夠勝任的。


您真有錢,學生時代就在考慮MBP。。。

不適合,有固定工作場合可以買顯卡,MBP的價格足夠買一個Titan XP了

沒有固定工作場合可以在訓練的時候用GPU雲伺服器,典型的k40單節點大約一塊錢一小時好像。。


回答的這些人總是強調不要用MacBook Pro...是因為**看不清提問嗎?

這樣有什麼不可以的,MacOS下本身編寫代碼很方便,主要是突出一個舒服高效,跑數據的時候遠程到其他計算機也是很正常的,大不了上AWS的EC2競價實例也ok吧,到底哪來這麼多疑問,非要買個垃圾PC寫代碼跑數據一起才能滿足這些人?錢錢錢,買MacBook Pro的在乎性價比嗎......簡直了

暴露了,一直反感PC陣營。


買個8代 U, MX150的輕薄本,能做驗證就行了。

我跟你想的一樣,覺得電腦太沉不行,於是上了Aero15的車,發現其實還是比較沉。不過1060的確算給力,原諒它了。

MBP不是不可以,但是你得有一台有顯卡台式機/伺服器。如果你學校能提供,MBP也未嘗不可。

另外有說讓你買個MBP然後上雲用GPU的千萬不要信,那東西偶爾用一用還行,長期用你絕對買不起。(買得起你幹嘛不買個MBP再來個高配台式機呢)


用mac毫無問題,我們實驗室就是做深度學習,計算機視覺的,人手一台mac連伺服器。原因就跟你說的一樣,非常輕便好用,續航長(可以在外出時寫代碼),適合程序員使用。

推薦使用sublime在mac上進行編輯,然後用cyberduck同步到伺服器或者台式機上。


現在深度學習主要是還是大顯存nvidia顯卡,MacBookpro是AMD移動端顯卡,所以還是算了吧。寫點腳本,當成公司伺服器的顯示器用,倒是不錯的選擇。如果是學生,沒有伺服器,或者只是想自學,建議先雲上試試,也不貴。說不定學著學著就放棄了呢


MBP只能看看文章看看視頻,再就是做個batch=100左右的驗證。。。


基於mbp進行深度學習開發完全可行。

方案一:外接顯卡

你可以用Thunderbolt介面連外置顯卡。外置顯卡與主機之間的通訊取決於Thunderbolt介面,Thunderbolt介面帶寬大概是20GB/s,對於深度學習而言不會是系統的瓶頸。

(圖片來源:bizon-tech)

這樣你在住處或實驗室就可以連外置顯卡用,出門的時候直接背著mbp就行。

方案二:遠程到別的機器上跑

無論是用實驗室的機器,或者是網上的GPU雲,都可以。具體配置方法,不少回答已經涉及,網上也有很多教程,此不贅述。


3.5 inches SONY + TeamViewer照樣深度學習

對深度學習來說,代碼是靈魂,顯卡是肉體,控制是需求,只要能滿足這三個需求,就什麼都能做得出來。


推薦閱讀:

如何讓cout不自動識別數據類型輸出,而去按照指定的數據類型輸出?
程序函數條件與返回的區別?
Python 使用 list 作為函數參數時,參數是否會初始化?
怎麼去實現一個簡單文本編輯器?
使用IDE會不會降低程序員的智商?

TAG:蘋果公司AppleInc | 編程 | 機器學習 | 計算機視覺 | 深度學習DeepLearning |