python Keras還是TensorFlow,程序員該如何選擇深度學(xué)習(xí)框架?
Keras還是TensorFlow,程序員該如何選擇深度學(xué)習(xí)框架?如果您想用少量的代碼盡快地構(gòu)建和測(cè)試神經(jīng)網(wǎng)絡(luò),keras是最快的,而且sequential API和model非常強(qiáng)大。而且keras
Keras還是TensorFlow,程序員該如何選擇深度學(xué)習(xí)框架?
如果您想用少量的代碼盡快地構(gòu)建和測(cè)試神經(jīng)網(wǎng)絡(luò),keras是最快的,而且sequential API和model非常強(qiáng)大。而且keras的設(shè)計(jì)非常人性化。以數(shù)據(jù)輸入和輸出為例,與keras的簡(jiǎn)單操作相比,tensorflow編譯碼的構(gòu)造過(guò)程非常復(fù)雜(尤其對(duì)于初學(xué)者來(lái)說(shuō),大量的記憶過(guò)程非常痛苦)。此外,keras將模塊化作為設(shè)計(jì)原則之一,用戶(hù)可以根據(jù)自己的需求進(jìn)行組合。如果你只是想快速建立通用模型來(lái)實(shí)現(xiàn)你的想法,keras可以是第一選擇。
但是,包裝后,keras將變得非常不靈活,其速度相對(duì)較慢。如果高度包裝,上述缺點(diǎn)將更加明顯。除了一些對(duì)速度要求較低的工業(yè)應(yīng)用外,由于tensorflow的速度較高,因此會(huì)選擇tensorflow
如果您在驗(yàn)證您的想法時(shí),想定義損失函數(shù)而不是使用現(xiàn)有的設(shè)置,與keras相比,tensorflow提供了更大的個(gè)性空間。此外,對(duì)神經(jīng)網(wǎng)絡(luò)的控制程度將在很大程度上決定對(duì)網(wǎng)絡(luò)的理解和優(yōu)化,而keras提供的權(quán)限很少。相反,tensorflow提供了更多的控制權(quán),比如是否訓(xùn)練其中一個(gè)變量、操作梯度(以獲得訓(xùn)練進(jìn)度)等等。
盡管它們都提供了深度學(xué)習(xí)模型通常需要的功能,但如果用戶(hù)仍然追求一些高階功能選擇,例如研究特殊類(lèi)型的模型,則需要tensorflow。例如,如果您想加快計(jì)算速度,可以使用tensorflow的thread函數(shù)來(lái)實(shí)現(xiàn)與多個(gè)線(xiàn)程的相同會(huì)話(huà)。此外,它還提供了調(diào)試器功能,有助于推斷錯(cuò)誤和加快操作速度。
怎么把3dmax場(chǎng)景里單個(gè)的模型導(dǎo)出來(lái)?
1. 使用完整的3DMAX室內(nèi)場(chǎng)景,演示如何在場(chǎng)景中保存單個(gè)模型。啟動(dòng)3DMAX,打開(kāi)一個(gè)3DMAX場(chǎng)景,然后單擊工具欄中的“選擇對(duì)象”按鈕,在3DMAX場(chǎng)景中選擇“椅子”模型。
2. 單擊3DMAX的應(yīng)用程序按鈕,然后從下拉菜單中選擇“另存為”>“保存選定對(duì)象”命令。這里保存了3DMAX的單個(gè)模型對(duì)象。
3. 將彈出“文件另存為”對(duì)話(huà)框。為選定的單個(gè)模型對(duì)象選擇并命名保存路徑,然后單擊“保存”將單個(gè)模型對(duì)象保存在3DMAX場(chǎng)景中。
4. 關(guān)閉整個(gè)3DMAX場(chǎng)景。選擇3DMAX快捷工具欄上的“打開(kāi)”按鈕,在彈出的“打開(kāi)文件”對(duì)話(huà)框中,找到剛剛保存的文件,就可以在保存的3DMAX場(chǎng)景中打開(kāi)單個(gè)對(duì)象。
求保存高達(dá)模型的好方法和環(huán)境對(duì)保存的影響?
模型用于設(shè)置。當(dāng)然,不是到處都放。
建議LZ將模型放入展示柜、玻璃柜等,并鎖好。功能:防塵。通常只是透過(guò)玻璃看。展示柜不應(yīng)暴露在陽(yáng)光直射下。如果LZ面是干的,可以從珠寶店的陳列柜里學(xué)習(xí)。。。放一小杯水在里面。我不太清楚原理。沒(méi)有專(zhuān)門(mén)的陳列柜。平時(shí)有書(shū)柜嗎?例如,從樓上幾個(gè)人的角度來(lái)看,我們可以在表面上得到一些保護(hù)性的東西。如果LZ喜歡,我們可以試試。記得模特店好像有“防護(hù)漆”,但其實(shí)并不常見(jiàn)(不好買(mǎi))。這些東西大多是手工噴灌,使用起來(lái)非常方便,就像香水一樣。如果LZ有模特店,不妨試一試。
keras已訓(xùn)練好模型,一段時(shí)間后又有新數(shù)據(jù),如何在已有模型基礎(chǔ)上繼續(xù)做增量訓(xùn)練?
我也是一個(gè)菜鳥(niǎo),可以作為溝通。。。
在我看來(lái),如果網(wǎng)絡(luò)不需要調(diào)整(例如不添加新的類(lèi)別),只需使用一個(gè)小的學(xué)習(xí)率來(lái)微調(diào)網(wǎng)絡(luò)的所有數(shù)據(jù)。
如果網(wǎng)絡(luò)結(jié)構(gòu)發(fā)生變化(如增加新的類(lèi)別),在前期(如conv層)固定網(wǎng)絡(luò)參數(shù),后期(如FC層)直接學(xué)習(xí)參數(shù)。然后放開(kāi)凍結(jié),微調(diào)大局。
如何提高keras模型預(yù)測(cè)速度?
一旦確定了keras模型,在不修改keras框架的源代碼的情況下,什么都不會(huì)改變。唯一的出路是擴(kuò)大GPU。
一般情況下,我們只能?chē)L試修改模型結(jié)構(gòu)、量化剪枝等方式,自行修改框架源代碼,沒(méi)有必要。
通常,為了加快模型的預(yù)測(cè)速度,只需加載一次模型即可。
當(dāng)模型的預(yù)測(cè)時(shí)間過(guò)長(zhǎng)時(shí),通常采用減少卷積核、減少卷積核數(shù)、增加步長(zhǎng)、增加池單元等方法。一些參數(shù)較少的主干也可能被替換。
或者考慮使用移動(dòng)終端分離卷積和空穴卷積。
最后,默認(rèn)情況下,我們的模型由floaf32的精度表示,可以適當(dāng)量化。它以16位、8位甚至2位精度表示。只要模型的精度不顯著降低,且滿(mǎn)足使用場(chǎng)景,則是合理的。
如果您在這方面還有其他問(wèn)題,請(qǐng)關(guān)注我,一起學(xué)習(xí)。