為什麼Pytorch不能像sklearn一樣不用定義函式,都封裝好,直接調庫,幾行就搞定?

時間 2021-06-02 11:44:39

1樓:Lanking

有,但是不屬於框架的範疇。比如說numpy就沒有多少定義的大函式... 如果你要實現乙個演算法也都得手寫... sklearn就是呼叫numpy和scipy的功能。

同理,pytorch在深度學習地位和numpy類似,但是深度學習應用不會直接包在框架裡,對比之下,huggingface和torchvision都是相對成熟的應用層的包,可以一行用預訓練模型幹各種事... 還有torch*各類pytorch環繞建的生態。

2樓:射命丸咲

一般來說會有人基於 PyTorch,去寫乙個像 sklearn 一樣的東西

比如說——(下面是硬廣)

carefree-learn

這個東西不僅能達到題主的要求,甚至可能還做多了點微小的工作比如可以直接 file in、file out:

import

cflearn

fcnn

=cflearn

.make

()fcnn

.fit

(train_file

)# train_file 是訓練資料集的檔案路徑fcnn

.predict

(test_file

)# test_file 是測試資料集的檔案路徑這背後包含了一套(效果尚可的)資料預處理過程,理論上來說只要是個資料集都能把你給煉咯(不

3樓:

通常封裝好的東西在業界是最難用的,一堆部署問題和實際環境/裝置相容問題。

就算是在學界,封裝好的東西也沒什麼用。因為太死板不方便二次開發甚至是創新。

封裝程度過高的產品雖然好用,但是注定只能用來學習和建toy model。

封裝程度過低,二次開發的工作量就會十分大。

pytorch是我見過的目前為止兩者平衡上做得最好的平台了,沒有之一。即使要翻原始碼也十分方便易懂。

4樓:Colin

想到的可能原因是:

pyTorch為的是深度學習的計算, 深度學習的特點就是靈活的結構, 而靈活的結構難以使用超參來定義的;

skLearn為的是傳統的機器學習, 傳統的機器學習都有固定的結構, 所以很好用超參來定義.

所以pyTorch不好封裝深度學習模型, skLearn很好封裝傳統的機器學習模型.

5樓:

定位不一樣

你應該把Pytorch和numpy比較,注重的是flexibility,scalability,要方便研究者和開發者實現新的演算法

sklearn實現的演算法都是上個世紀就成熟的了,基本不需要考慮這個問題

6樓:Vince Yi

因為pytorch的優勢就是可以自定義函式,這種優勢在改模型時會非常有用。pytorch也有很多封裝函式比如各種loss很cnn, maxpooling, rnn layer等,基本上sklearn能夠實現的pytroch都可以實現

現在的lol環境 為什麼不適合打運營(像skt那樣?

咲川天皇 首先就是實力 Lck選手的實力不再獨步天下,不是拿出乙個位置來都是世界頂尖了。原先真的是人才輩出,現在不行了。不是lck撈了,而是lpl lec強了。什麼?你說lcs?濤聲依舊啊 實力下降,也就代表戰術執行力不夠了。都是賽區頂尖強隊,你想帶著別人團團轉,選手實力必須到位,戰術執行力必須足夠...

為什麼 USB 介面不能像 Lightning Dock 介面一樣,不分正反插入?

張石 usb剛出現和推廣的時候,電腦上還很多介面 串列埠 並口 印表機等等 而且全部 除了耳機介面 都是要看準方向才能插的,那時非usb介面一樣都存在 沒先看準的情況下 插幾次才插對的問題,滑鼠的圓口 老使用者應該記憶猶新,針很容易歪!更難插,不止是正反問題,還要對準角度。當時要設計出不分正反是需要...

為什麼我們不能像美國制裁Tik Tok那樣制裁蘋果?

馬克思主義羊 你知道蘋果有多聽話麼,谷歌不答應的事情,蘋果可是挨個答應了。不僅如此,蘋果繳稅也高,帶動了一堆相關產業鏈。人家就是來賺錢的,何必呢,和氣生財不好嗎? 哲子戲 谷歌也是被這樣趕出去的,只是一報還一報罷了。果然大多數人還是很健忘的啊。回到正題,我們能不能像美國那麼做呢?我們不能!為什麼不能...