偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

PyTorch和TensorFlow哪個(gè)更好?看一線開(kāi)發(fā)者怎么說(shuō)

人工智能
Theano、TensorFlow、Torch、MXNet 再到近日比較熱門(mén)的 PyTorch 等等,深度學(xué)習(xí)框架之間的比較一直以來(lái)都是非常受人關(guān)注的熱點(diǎn)話題。不過(guò)你知道用戶實(shí)際用起來(lái)的感覺(jué)怎么樣嗎?近日,Reddit 用戶 cjmcmurtrie 發(fā)了一個(gè)主題為「PyTorch vs. TensorFlow」的討論帖,想要了解這兩大流行的框架之間各自有什么優(yōu)勢(shì)。

Theano、TensorFlow、Torch、MXNet 再到近日比較熱門(mén)的 PyTorch 等等,深度學(xué)習(xí)框架之間的比較一直以來(lái)都是非常受人關(guān)注的熱點(diǎn)話題。不過(guò)你知道用戶實(shí)際用起來(lái)的感覺(jué)怎么樣嗎?近日,Reddit 用戶 cjmcmurtrie 發(fā)了一個(gè)主題為「PyTorch vs. TensorFlow」的討論帖,想要了解這兩大流行的框架之間各自有什么優(yōu)勢(shì)。

[[184501]]

帖子一樓寫(xiě)道:

我還沒(méi)有從 Torch7 遷移到 TensorFlow。我玩過(guò) TensorFlow,但我發(fā)現(xiàn) Torch7 更加直觀(也許是我玩得不夠?)。我也嘗試了一點(diǎn) PyTorch,所以我決定先看看效果。

使用了幾周 PyTorch 之后,我認(rèn)為我現(xiàn)在還不必遷移到 TensorFlow,至少在我感興趣的項(xiàng)目上還不需要。用 PyTorch 寫(xiě)自定義模塊真是簡(jiǎn)單至極。而且其動(dòng)態(tài)圖構(gòu)建(dynamic graph construction)給我之前需要熬夜實(shí)現(xiàn)(或等待列表上)的東西帶來(lái)了很多新想法。我認(rèn)為對(duì)機(jī)器學(xué)習(xí)開(kāi)發(fā)者來(lái)說(shuō),PyTorch 是一個(gè)了不起的工具集。我也知道 TensorFlow 的社區(qū)資源要強(qiáng)大得多,但如果要開(kāi)發(fā)全新的項(xiàng)目(而不是為已有的架構(gòu)重新寫(xiě)代碼或閱讀教程),社區(qū)也不一定能有很大的幫助。

這個(gè) Reddit 帖子發(fā)出后得到了很多機(jī)器學(xué)習(xí)研究者和開(kāi)發(fā)者的關(guān)注,他們紛紛跟貼談?wù)撟约旱南敕ê徒?jīng)驗(yàn)(不只是關(guān)于 PyTorch 和 TensorFlow,討論中還涉及到更多工具)。

下文為我們提煉的一些觀點(diǎn),原帖請(qǐng)看:https://redd.it/5w3q74

TensorFlow 

優(yōu)勢(shì):

  • 等效的圖形編譯(graph compilation)要快得多;我們用了幾秒而不是幾分鐘。但是它仍然不夠快,如果我們想要將它的大部分添加到我們的 CI 套件(CI suite),但我們不需要等待很長(zhǎng)時(shí)間來(lái)開(kāi)始訓(xùn)練。

  • 從 Lasagne 轉(zhuǎn)到 TensorFlow 之后,我喜歡 tf.layers 和 tf.contrib.layers 中更高層次的功能;它們?yōu)榻邮軓埩浚╰ensor)并返回張量的功能性 API,因此更容易與「原始」的 TensorFlow 集成。我們可以做普通的張量操作,而不用寫(xiě)一個(gè)層那么麻煩。

  • 在我們使用的模型上,TensorFlow 的速度稍稍快于 Theano(20%-30%)。當(dāng)***次使用時(shí),我們看到大致相同的性能,并認(rèn)為這可以接受,但然后我們閱讀 TensorFlow 的性能指南(https://www.tensorflow.org/performance/performance_guide),并切換到 NCHW 并融入批處理規(guī)范(batch norm),然后一切運(yùn)行得更快了。我猜 Theano 本身就不是很快……

  • 關(guān)于開(kāi)發(fā)人員的反饋速度:我曾在 TF 的問(wèn)題區(qū)提出了一些微不足道的問(wèn)題,但 TF 開(kāi)發(fā)人員通常在一兩天內(nèi)就回復(fù)我了。

  • 此外,工具是相當(dāng)好的。TensorBoard 絕對(duì)好用,用來(lái)表示的時(shí)間線(timeline)/跟蹤(trace)的工具也一樣好用。但是我還沒(méi)有嘗試新加入的 tfdbg。

  • TensorFlow 在設(shè)計(jì)時(shí)就考慮到了分布式,所以如果你需要運(yùn)行真正的大規(guī)模項(xiàng)目,TensorFlow 多半是***的。

缺點(diǎn):

  • TensorFlow 的 API 非?;闹嚕诿總€(gè)階段都會(huì)重新發(fā)明輪子,并且要求開(kāi)發(fā)者學(xué)習(xí)很多本不必要的新概念。然而,開(kāi)發(fā)者峰會(huì)表示這一境況正在改善——而且同時(shí)使用 TensorFlow Servin 和 Cloud ML 會(huì)提高你的生產(chǎn)力。

  • 在實(shí)踐中部署到 iOS 非常困難。

  • 我并沒(méi)有在 Keras 或者 Tensorflow 上工作,但是我看過(guò)他們的「問(wèn)題」日志和一些用戶組,只是因?yàn)榇罅康挠脩簦@些框架看起來(lái)并不會(huì)得到這種個(gè)人的關(guān)注。

PyTorch

優(yōu)勢(shì):

  • 它屬于輕量級(jí);

  • 它目前位于 Python 中;

  • 它使你能夠明確地控制計(jì)算。沒(méi)有編譯器能自己妄圖變聰明來(lái)「幫助你」,或是將你的代碼加速;事實(shí)上大多編譯器在調(diào)試中會(huì)產(chǎn)生大量麻煩;

  • 它使 GPU 內(nèi)核調(diào)用之上僅有少量(可解釋的)抽象層,而這恰恰是高性能的保證;

  • 也許這是個(gè)人偏好,但我得到了與抽象有關(guān)的特定 OCD。每當(dāng)我要做艱巨的工作時(shí)都會(huì)很緊張,因?yàn)橐坏┪业奈磥?lái)被泄漏,我便能感覺(jué)到它那些無(wú)法擺脫且難以忍受的痛苦。相對(duì)簡(jiǎn)單的事情理應(yīng)在引擎蓋之下發(fā)生的大多數(shù)情況下,這種感覺(jué)尤為強(qiáng)烈;

  • 調(diào)試更容易,因?yàn)樘囟ùa中會(huì)是特定行(而不是在距離使用大型或生成的 Graph 對(duì)象的 sess.run()很遠(yuǎn)的地方)失敗。你的堆棧跟蹤不會(huì)填滿三個(gè)屏幕來(lái)讓你玩「找找錯(cuò)誤在哪里!」的豎版卷軸游戲;

  • 不存在編譯時(shí)間。我無(wú)法理解 Theano 用戶是如何處理的,他們一定更有耐心;

  • 你可以直接操作漸變,顯然,做一些事情時(shí)可以更容易,也更自然(如在反向傳播過(guò)程中的漸變剪輯,或各種「破碎的反向傳播」的有關(guān)想法,就像最近的 Shake Shake reg 命令一樣;的確,我認(rèn)為你可以用 stop_gradient 破解一個(gè)解決方案);

  • 它對(duì)動(dòng)態(tài)圖的支持從一開(kāi)始就是自上而下的設(shè)計(jì)原則,而非隨之而至的事后想法。并且我們會(huì)看到更多的動(dòng)態(tài)圖表,如做成一大塊 NLP,或是神經(jīng)模塊網(wǎng) ;

  • 它沒(méi)有縮進(jìn)或膨脹你的代碼的顯式會(huì)話對(duì)象;

  • 它獲得的抽象是正確的:raw numpy - > Tensors(但 GPU 上的 raw numpy 可能對(duì)深度學(xué)習(xí)一無(wú)所知?。? >變量(它們了解深度學(xué)習(xí)),并且 Modules 或 Optim 等等會(huì)稍有益處。

  • 動(dòng)態(tài)計(jì)算使很多事情更加容易,如 seq2seq + attention 的神經(jīng)翻譯很難通過(guò) keras + tf 來(lái)實(shí)現(xiàn),但使用 PyTorch 便會(huì)很容易;

  • 更容易調(diào)試,因?yàn)槟憧梢灾皇褂脴?biāo)準(zhǔn)的 PyThon 工具;

  • PyTorch 讓自定義的實(shí)現(xiàn)更加容易,所以你得以將更多時(shí)間專注于算法中,這樣往往能夠改進(jìn)主要性能;

  • 使 Multi-gpu 簡(jiǎn)單易懂;

  • Torch-vision 使加載和變換圖像變得容易。

  • PyTorch 提供了一個(gè)強(qiáng)化功能。增強(qiáng)功能基本上不會(huì)在實(shí)現(xiàn)中產(chǎn)生過(guò)多資源消耗,能有一些內(nèi)置函數(shù)來(lái)調(diào)用 RL 的感覺(jué)真棒。

  • 我遇到的錯(cuò)誤或問(wèn)題得到PyTorch 團(tuán)隊(duì)及時(shí)的反映,通常會(huì)在當(dāng)天修復(fù),或者得到解決方法或得到問(wèn)題跟蹤。

  • PyTorch 是可以立即使用的,在我當(dāng)前的項(xiàng)目的單 GPU 的訓(xùn)練時(shí)間比 theano+lasagne 快 100%。我測(cè)試過(guò),100% 逐字地在 CIFAR100 上從(在最簡(jiǎn)單的情況下)5 分/歷元到 2.5 分/歷元,并且在某些情況下降到 2 分鐘/歷元(即,快兩倍)

缺點(diǎn):

  • PyTorch 的 API感覺(jué)有些粗糙,但對(duì)它有一些限定詞。如果你只是做一些標(biāo)準(zhǔn)的任務(wù)(實(shí)現(xiàn) ResNet 或者 VGG)我認(rèn)為你不會(huì)有問(wèn)題,但我一直都有一些分歧因?yàn)槲宜龅囊磺卸加行┢婀帧?/p>

  • 對(duì)于 PyTorch 我***的「抱怨」基本上是在神經(jīng)網(wǎng)絡(luò) API 方面「事情并未按照我讓他們組合的方式進(jìn)行放置」。具體來(lái)說(shuō),我非常喜歡 Lasagne 的「層次(layers)」范式—但是一點(diǎn)點(diǎn)批判性的思維就會(huì)讓你得出這個(gè)結(jié)論,這個(gè)范式尤其不適合動(dòng)態(tài)圖框架。

  • PyTorch 沒(méi)有為部署設(shè)計(jì),開(kāi)發(fā)團(tuán)隊(duì)它看上去并沒(méi)有把重心放在 PyTorch 上(雖然在這方面,我可能看錯(cuò)了,我模糊的記得我在論壇的帖子上看到過(guò)這個(gè))。我想要練習(xí)將一些東西放置在網(wǎng)站或者 droid app 上我不確定其他的框架能很好地支持這種方式。

責(zé)任編輯:張燕妮 來(lái)源: 機(jī)器之心
相關(guān)推薦

2017-03-02 14:52:46

2023-07-07 08:15:18

JavaPython編寫(xiě)

2013-01-16 10:37:20

盈利開(kāi)發(fā)者移動(dòng)應(yīng)用

2018-12-19 09:15:36

SDN軟件定義網(wǎng)絡(luò)廣域網(wǎng)

2017-11-16 13:09:31

開(kāi)發(fā)者

2017-05-22 15:10:11

人工智能醫(yī)生機(jī)器人

2014-06-04 09:21:07

Swift開(kāi)發(fā)語(yǔ)言

2013-10-28 10:13:53

SDN技術(shù)SDN軟件定義網(wǎng)絡(luò)

2017-07-13 09:48:22

Hadoop數(shù)據(jù)倉(cāng)庫(kù)

2021-11-13 21:42:15

開(kāi)發(fā)者Google 開(kāi)發(fā)者大

2019-01-11 14:32:09

TensorFlow 機(jī)器之心谷歌

2021-07-01 16:45:17

PyTorchTensorflow 機(jī)器學(xué)習(xí)

2015-09-23 10:27:25

2020-06-16 14:03:48

邊緣計(jì)算網(wǎng)絡(luò)人工智能

2024-04-12 16:16:19

2014-06-04 13:36:20

Swift蘋(píng)果iOS

2014-04-14 11:23:27

WP8.1Build2014

2011-08-08 09:59:35

Android

2016-12-14 14:20:25

華為酷傳開(kāi)發(fā)

2021-06-08 15:17:41

iOS 15開(kāi)發(fā)者退款
點(diǎn)贊
收藏

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