PyTorch簡介
要介紹PyTorch之前辫呻,不得不說一下Torch宪萄。Torch是一個有大量機(jī)器學(xué)習(xí)算法支持的科學(xué)計(jì)算框架柒桑,是一個與Numpy類似的張量(Tensor) 操作庫谱净,其特點(diǎn)是特別靈活窑邦,但因其采用了小眾的編程語言是Lua,所以流行度不高壕探,這也就有了PyTorch的出現(xiàn)冈钦。所以其實(shí)Torch是 PyTorch的前身,它們的底層語言相同李请,只是使用了不同的上層包裝語言瞧筛。
PyTorch是一個基于Torch的Python開源機(jī)器學(xué)習(xí)庫,用于自然語言處理等應(yīng)用程序导盅。它主要由Facebookd的人工智能小組開發(fā)较幌,不僅能夠 實(shí)現(xiàn)強(qiáng)大的GPU加速,同時(shí)還支持動態(tài)神經(jīng)網(wǎng)絡(luò)白翻,這一點(diǎn)是現(xiàn)在很多主流框架如TensorFlow都不支持的乍炉。 PyTorch提供了兩個高級功能: * 具有強(qiáng)大的GPU加速的張量計(jì)算(如Numpy) * 包含自動求導(dǎo)系統(tǒng)的深度神經(jīng)網(wǎng)絡(luò)
除了Facebook之外,Twitter滤馍、GMU和Salesforce等機(jī)構(gòu)都采用了PyTorch岛琼。
TensorFlow和Caffe都是命令式的編程語言,而且是靜態(tài)的巢株,首先必須構(gòu)建一個神經(jīng)網(wǎng)絡(luò)槐瑞,然后一次又一次使用相同的結(jié)構(gòu),如果想要改 變網(wǎng)絡(luò)的結(jié)構(gòu)阁苞,就必須從頭開始随珠。但是對于PyTorch灭袁,通過反向求導(dǎo)技術(shù),可以讓你零延遲地任意改變神經(jīng)網(wǎng)絡(luò)的行為窗看,而且其實(shí)現(xiàn)速度 快茸歧。正是這一靈活性是PyTorch對比TensorFlow的最大優(yōu)勢。
另外显沈,PyTorch的代碼對比TensorFlow而言软瞎,更加簡潔直觀,底層代碼也更容易看懂拉讯,這對于使用它的人來說理解底層肯定是一件令人激 動的事涤浇。
所以,總結(jié)一下PyTorch的優(yōu)點(diǎn): * 支持GPU * 靈活魔慷,支持動態(tài)神經(jīng)網(wǎng)絡(luò) * 底層代碼易于理解 * 命令式體驗(yàn) * 自定義擴(kuò)展
當(dāng)然只锭,現(xiàn)今任何一個深度學(xué)習(xí)框架都有其缺點(diǎn),PyTorch也不例外院尔,對比TensorFlow蜻展,其全面性處于劣勢,目前PyTorch還不支持快速傅里 葉邀摆、沿維翻轉(zhuǎn)張量和檢查無窮與非數(shù)值張量纵顾;針對移動端、嵌入式部署以及高性能服務(wù)器端的部署其性能表現(xiàn)有待提升栋盹;其次因?yàn)檫@個框 架較新施逾,使得他的社區(qū)沒有那么強(qiáng)大,在文檔方面其C庫大多數(shù)沒有文檔例获。