ONCE-FOR-ALL - 1 - 論文學習


ONCE-FOR-ALL: TRAIN ONE NETWORK AND SPE- CIALIZE IT FOR EFFICIENT DEPLOYMENT ON DIVERSE HARDWARE PLATFORMS

ABSTRACT

我們解決了跨許多設備和各種約束,即從通用硬件到專用加速器的高效深度學習模型部署的挑戰性問題。傳統的方法要么手工設計,要么使用神經結構搜索(NAS)來找到一個專門的神經網絡,然后針對每種情況從頭開始訓練它,這在計算上是禁止的(將導致多達5輛汽車的壽命周期中排放的CO2,參考Strubell等人(2019)論文),因此不可擴展。為了降低成本,我們的關鍵思想是將模型訓練與架構搜索解耦。為此,我們建議訓練一個once-for-all的網絡(OFA),它支持不同的體系結構設置(深度、寬度、內核大小和分辨率)。在給定的部署場景中,我們可以通過從OFA網絡中進行選擇,而不需要進行額外的訓練,從而快速地獲得一個特定的子網絡。為了防止訓練過程中多個子網絡之間的干擾,我們還提出了一種新的漸進收縮算法,該算法可以同時訓練大量的子網絡(> 1019)。在各種硬件平台(CPU、GPU、mCPU、mGPU、FPGA加速器)上的大量實驗表明,OFA的性能始終優於SOTA NAS方法(與MobileNetV3相比,ImageNet top1的精度提高了4.0%),同時降低了GPU工作時間和二氧化碳排放的數量級。特別是,OFA在移動設置(<600M FLOPs)下實現了新的SOTA 80.0% ImageNet top1精度。代碼和預先訓練的模型在https://github.com/mit-han-lab/once-for-all發布。

 

1 INTRODUCTION

深度神經網絡(DNNs)在許多機器學習應用中提供了最先進的准確性。然而,隨着模型規模和計算成本的爆炸性增長,如何在不同的硬件平台上有效地部署這些深度學習模型也面臨着新的挑戰,因為它們必須滿足不同的硬件效率約束(如延遲、能量)。例如,App Store上的一個移動應用程序必須支持多種硬件設備,從配備專用神經網絡加速器的高端三星Note10,到配備速度慢得多的5年前的三星S6。對於不同的硬件資源(例如,片上內存大小、#算術單元),最優的神經網絡體系結構差異很大。即使在相同的硬件上運行,在不同的電池條件或工作負載下,最好的模型架構也會有很大的不同。

考慮到不同的硬件平台和效率約束(定義為部署場景),研究人員要么設計專門用於移動設備的緊湊模型(Howard et al., 2017; Sandler et al., 2018; Zhang et al., 2018)或通過壓縮加速現有模型(Han et al., 2016; He et al., 2018)進行有效部署。然而,為每個場景設計專門的DNNs是非常昂貴的,無論是使用基於人的方法還是NAS,在計算上都非常昂貴。因為這類方法需要重復網絡設計過程,並針對每種情況從零開始重新訓練設計的網絡。它們的總成本隨着部署場景數量的增加而線性增長,這將導致過度的能源消耗和二氧化碳排放(Strubell et al., 2019)。這使得它們無法處理大量的硬件設備(到2018年將有231.4億物聯網設備)和高度動態的部署環境(不同的電池條件、不同的延遲需求等)


本文介紹了一種新的解決方案來應對這一挑戰——設計一個once-for-all的網絡,其可以直接部署在不同的架構配置下,分攤訓練成本。推理是通過只選擇once-for-all全部網絡中的一部分來執行的。它可以靈活地支持不同的深度、寬度、內核大小和分辨率,而無需重新訓練。一個簡單的once-for-all(OFA)的例子,如圖1(left)所示:

具體來說,我們解耦了模型訓練階段和模型專門化階段。在模型訓練階段,我們着重於通過選擇once-for-all網絡的不同部分來提高所有子網絡的准確性。在模型專門化階段,我們對子網絡子集進行抽樣,以訓練准確性預測器和延遲預測器。在給定目標硬件和約束條件下,通過預測引導的體系結構搜索(Liu et al., 2018)得到一個專門的子網絡,其代價可以忽略不計。因此,我們將專門的神經網絡設計的總成本從O(N)降低到O(1)(如圖1,middle所示)。

然而,訓練once-for-all網絡是一項重要的任務,因為它需要聯合優化權值來保持大量子網絡的准確性(在我們的實驗中超過1019個)。在每個更新步驟中枚舉所有的子網絡以獲得精確的梯度在計算上是禁止的,而在每個步驟中隨機抽樣幾個子網絡將導致顯著的精度下降。挑戰在於不同的子網絡相互干擾,使得整個一勞永逸網絡的訓練過程效率低下。為了解決這個問題,我們提出了一種漸進式收縮算法來訓練once-for-all網絡。我們建議先訓練具有最大深度、寬度和核尺寸的最大神經網絡,然后逐步微調這個具有最大深度、寬度和核尺寸的最大神經網絡,以支持較小的子網絡,這些子網絡與較大的子網絡共享權值因此,通過選擇較大子網絡最重要的權值,提取較小的子網絡,可以提供更好的初始化,極大地提高了訓練效率。

我們使用了很多硬件平台(CPU、GPU、mCPU、mGPU、FPGA加速器)和效率約束,廣泛地評估了OFA在ImageNet上的有效性。在所有部署場景下,與SOTA硬件感知NAS方法相比,OFA始終能夠顯著提高ImageNet的精度,同時節省GPU的時間、金錢和二氧化碳排放。在ImageNet移動設備上(小於600M FLOPs), OFA以595M FLOPs達到了新的SOTA 80.0% top1精度。據我們所知,這是第一次在移動設置下,SOTA ImageNet top1精度達到80%。

 

2 RELATED WORK

Efficient Deep Learning. 為了提高硬件效率,提出了許多高效的神經網絡架構,如SqueezeNet (Iandola et al., 2016)、MobileNets (Howard et al., 2017; Sandler et al., 2018), ShuffleNets (Ma et al., 2018; Zhang et al., 2018)等。正交於構建高效的神經網絡,模型壓縮(Han et al., 2016)是高效深度學習的另一種非常有效的技術,包括刪除冗余單元的網絡修剪(Han et al., 2015)或刪除冗余通道(He et al., 2018; Liu et al., 2017),以及降低權重和激活的位寬的量化方法(Han et al., 2016; Courbariaux et al., 2015; Zhu et al., 2017)。


Neural Architecture Search.  神經架構搜索(NAS)關注於架構設計過程的自動化(Zoph & Le, 2017; Zoph et al., 2018; Real et al., 2019; Cai et al., 2018a; Liu et al., 2019)。早期NAS方法(Zoph et al., 2018; Real et al., 2019; Cai et al., 2018b)在不考慮硬件效率的情況下尋找高精度的架構。因此,生成的架構(例如,NASNet、AmoebaNet)在推理時是低效的。最近的硬件感知NAS方法(Cai et al., 2019; Tan et al., 2019; Wu et al., 2019)直接將硬件反饋整合到架構搜索中。因此,它們能夠提高推理效率。然而,考慮到新的推理硬件平台,這些方法需要重復架構搜索過程並對模型進行再訓練,導致GPU的工作時間、成本和二氧化碳排放都令人望而卻步。它們不能擴展到大量的部署場景。單獨訓練的模型不共享任何重量,導致模型有大的size和高的下載帶寬。

Dynamic Neural Networks.  為了提高給定神經網絡的效率,一些工作探索了基於輸入圖像的模型skipping部分的方法。例如,Wu et al. (2018); Liu & Deng (2018); Wang et al. (2018)學習控制器或gating模塊自適應drop層;Huang et al. (2018) 在計算圖中引入了早期退出分支;Lin et al.(2017)基於輸入特征圖自適應地對通道進行修剪;Kuen et al.(2018)引入隨機下采樣點自適應地減小特征圖的大小。最近,Slimmable Nets (Yu et al., 2019; Yu & Huang, 2019b) 建議訓練一個模型來支持多個寬度乘子(例如,4個不同的全局寬度乘子),以現有的人類設計的神經網絡(例如,MobileNetV2的4個乘子:0.35、0.5、0.75、1.0 )為基礎。這些方法可以在運行時自適應地適應不同的效率約束,但是,仍然繼承了預先設計的神經網絡(例如MobileNet-v2),這限制了靈活性的程度(例如,只有寬度乘法器可以適應)和處理預先設計的神經網絡不是最優的新部署場景的能力。相比之下,在我們這項工作中,我們實現了更加多樣化的架構空間(深度、寬度、內核大小和分辨率)和大量的架構設置(1019 v.s. 4 (Yu et al., 2019))。由於多樣性和大的設計空間,我們可以為許多不同的部署場景派生新的專門的神經網絡,而不是在現有的神經網絡上工作,這限制了優化的空間。然而,訓練網絡來實現這種靈活性更具挑戰性,這促使我們設計漸進收縮算法來應對這一挑戰。

 

3 METHOD

3.1 PROBLEM FORMALIZATION

假設一次性網絡的權值為Wo,架構配置為{archi},則可以將問題形式化為:

其中C(Wo, archi)表示從once-for-all網絡Wo中選擇部分模型,形成具有架構配置archi的子網的選擇方案。總體的訓練目標是優化Wo,使每個被支持的子網絡保持與獨立訓練的具有相同架構配置的網絡有相同的精度水平。

 

3.2 ARCHITECTURE SPACE

我們的once-for-all網絡提供了一個模型,但支持許多不同大小的子網絡,覆蓋了卷積神經網絡(CNNs)架構的四個重要維度,即、深度、寬度、內核大小和分辨率。遵循許多CNN模特的慣例(He et al., 2016; Sandler et al., 2018; Huang et al., 2017),我們將CNN模型分成一系列的單元,逐漸減小特征圖的大小,增加通道數。每個單元由一系列層組成,只有當第一層的stride為2時,特征圖的大小會減小 (Sandler et al., 2018)。單元所有其他層stride為1。

我們允許每個單元使用任意數量的層(表示為彈性深度);對於每個層,我們允許使用任意數量的通道(表示為彈性寬度)和任意大小的內核(表示為彈性內核大小)。此外,我們還允許CNN模型采用任意輸入圖像大小(表示為彈性分辨率)。例如,在我們的實驗中,輸入圖像的大小在128到224之間,步長為4;每個單元的深度從{2,3,4}中選擇;每層的寬度擴展比從{3,4,6}中選擇;內核大小從{3,5,7}中選擇。因此,5個單元中,我們有大約((3×3)2+(3×3)3 +(3×3)4)5≈2×1019種不同的神經網絡結構(即如果一個單元的深度為2,其有兩層,該層的寬度有三種選擇,內核大小有3種選擇,則有(3×3)2種選擇;同理如果一個單元的深度為3,則有(3×3)3種選擇;同理如果一個單元的深度為4,則有(3×3)4種選擇,因此一個單元有(3×3)2+(3×3)3 +(3×3)4種選擇,這里是在5個單元中,所以總共有((3×3)2+(3×3)3 +(3×3)4)5種選擇),每一種都可以在25種(從128大小開始,步長為4,即下一個輸入大小為132、136、140、...、224,一共有25種)不同的輸入分辨率下使用。由於所有這些子網絡共享相同的權值 (即Wo) (Cheung et al., 2019),我們只需要770萬個參數來存儲它們。如果沒有共享,整個模型的大小將是禁止的。

 

3.3 TRAINING THE ONCE-FOR-ALL NETWORK

Na ̈ıve Approach. 將once-for-all網絡訓練問題轉化為一個多目標問題,每個目標對應一個子網絡。從這個角度看,一個näıve訓練方法是從頭開始使用總體目標的確切梯度來直接優化短暫的網絡,其通過列舉每個更新步驟的所有子網來生成,如等式1所示。這種方法的成本與子網數量呈線性關系。因此,它只適用於支持有限數量的子網絡的場景(Yu et al.,2019),而在我們的情況下,采用這種方法在計算上是禁止的。

另一個näıve訓練方法是每個更新步驟采樣幾個子網而非列舉所有子網,沒有成本高昂的問題。然而,由於共享權值的大量子網絡相互干擾,我們發現它的精度明顯下降。在下一節中,我們將介紹一種解決方案,通過在訓練過程中添加漸進收縮訓練順序來解決這一挑戰。相應地,我們把näıve訓練方法作為隨機順序。

Progressive Shrinking. once-for-all網絡由許多不同大小的子網絡組成,小的子網絡嵌套在大的子網絡中。為了防止子網絡之間的干擾,我們建議以漸進的方式將訓練指令從大的子網絡強制執行到小的子網絡。我們將這個訓練順序命名為漸進收縮(PS)。圖2提供了PS訓練過程的一個例子:

我們從訓練最大的神經網絡開始,它具有最大的內核大小(即7)、最大的深度(即4)、最大的寬度(即6)。下一步,我們逐步對網絡進行微調,以支持較小的子網絡,逐步將它們添加到采樣空間中(也可以對較大的子網絡進行采樣)。具體來說,在訓練最大的網絡后,我們首先支持彈性核的大小,在每一層可以選擇{3,5,7},深度和寬度保持最大值。然后,我們依次支持彈性深度和彈性寬度,如圖2所示。該分辨率在整個訓練過程中是有彈性的,它是通過對每批訓練數據采樣不同大小的圖像來實現的。我們在訓練了最大的神經網絡后,也使用了知識蒸餾技術(Hinton et al., 2015; Ashok et al., 2018; Yu & Huang, 2019b)。它結合了兩個損失項,使用最大的神經網絡給出的soft標簽和真實的標簽

Loss = Losshard + λLosssoft

相比näıve方法,PS阻止小子網干擾大的子網,即當對once-for-all網絡微調去支持小的子網絡時,大的子網絡已經訓練好了 。此外,在微調過程中,通過使用較小的學習率和重新訪問(即采樣)訓練好的大的子網絡來在訓練好的大的子網絡周圍的局部空間優化模型。對於小的子網絡,它們與大的子網絡共享權重。因此,PS允許使用訓練有素的大型子網絡的最重要權值來初始化小型子網絡,從而加快了訓練過程。我們將PS訓練流程的細節描述如下:

Elastic Kernel Size (Figure 3 left).  我們讓一個7x7的卷積核的中心也作為一個5x5的核,它的中心也可以是一個3x3的核。因此,內核大小變得有彈性。挑戰在於,中心的子內核(例如,3x3和5x5)是共享的,並且需要扮演多個角色(獨立的內核和大型內核的一部分)。中心子核的權值可能需要根據不同的角色有不同的分布或大小。強迫它們相同會降低某些子網絡的性能。因此,我們在共享核權值時引入核變換矩陣。我們對不同的層使用不同的核變換矩陣。在每個層中,內核轉換矩陣在不同的通道之間共享。因此,我們只需要25×25 + 9×9 = 706個(即將7x7核中間的5x5=25轉換為5x5核的值需要25x25個,然后將5x5核中間的3x3=9轉換為3x3核的值需要9x9個)額外的參數來存儲每一層的核變換矩陣,這是可以忽略不計的。

Elastic Depth (Figure 3 right).  為了在原來有N層的單元中派生出具有D層的子網絡,我們保留了前D層並跳過最后N - D層,而不是像當前NAS方法中所做的那樣保留任何D層(Cai et al., 2019; Wu et al., 2019)。因此,一個深度設置只對應於一個層的組合。最后,大模型和小模型之間共享第一個D層的權重。

Elastic Width (Figure 4).  寬度表示通道的數量。我們給每一層選擇不同通道擴展比例的靈活性。按照逐步縮小的方案,我們首先訓練一個全寬模型。然后我們引入一個通道排序操作來支持部分寬度。它根據通道的重要性對通道進行重組,並根據通道權值的L1范數進行計算。L1范數越大越重要。例如,當從4通道層收縮到3通道層時,我們選擇最大的3個通道,它們的權值與4通道層共享(圖4左、中)。因此,較小的子網絡是使用已經過良好的訓練的once-for-all網絡的最重要的通道來初始化的。這種通道分類操作保持了較大的子網絡的准確性。

 

3.4 SPECIALIZED MODEL DEPLOYMENT WITH ONCE-FOR-ALL NETWORK

在訓練了一個once-for-all的網絡之后,下一個階段是為給定的部署場景派生專門的子網絡。目標是在優化精度的同時,尋找滿足目標硬件效率(如延遲、能量)約束的神經網絡。由於OFA將模型訓練與架構搜索解耦,因此在這個階段我們不需要任何的訓練成本。此外,我們建立neural-network-twins預測給定的神經網絡架構的延遲和准確性,為模型的質量提供一個快速的反饋。它通過將測量精度/延遲替換為預測精度/延遲(twins)來消除重復搜索成本。

具體來說,我們隨機樣本16k個有着不同的體系結構和輸入圖像大小的子網,然后在從原始訓練集樣本采樣的10k張驗證圖像中測量精度。這些[結構、准確性]對 用於訓練一個准確性預測器去預測給定結構和輸入圖像大小的模型的准確性。我們還在每個目標硬件平台上構建了一個延遲查找表(Cai et al., 2019)來預測延遲。考慮到目標硬件和延遲約束,我們進行了基於neural-network-twins的進化搜索(Real et al., 2019),以得到一個專門的子網絡。由於使用neural-network-twins進行搜索的成本可以忽略不計,因此我們只需要40個GPU小時來收集數據對,並且無論#部署場景如何,成本都保持不變。

 

4 EXPERIMENTS

在本節中,我們首先應用漸進式收縮算法來訓練ImageNet上的once-for-all網絡(Deng et al., 2009)。然后,我們在有着不同延遲限制的不同的硬件平台((Samsung S7 Edge, Note8, Note10, Google Pixel1, Pixel2, LG G8, NVIDIA 1080Ti, V100 GPUs, Jetson TX2, Intel Xeon CPU, Xilinx ZU9EG, and ZU3EG FPGAs)上演示了我們訓練過的once-for-all網絡的有效性。

 

4.1 TRAINING THE ONCE-FOR-ALL NETWORK ON IMAGENET

Training Details.  我們使用與MobileNetV3相同的架構空間(Howard et al., 2019)。為了訓練整個網絡,我們使用帶有Nesterov momentum 為0.9和權重衰減為3e−5的標准SGD優化器。初始學習率為2.6,我們使用cosine schedule(Loshchilov & Hutter, 2016)進行學習率衰減。整個網絡在32個GPUs上訓練了180個epoch,batch size為2048。然后,我們按照圖2中描述的時間表進一步調整整個網絡。在V100 GPU上,整個訓練過程大約需要1200個GPU小時。這是once-for-all的訓練成本,可以通過許多部署場景來分攤。

Results.  表1報告了通過我們的漸進收縮(PS)算法和隨機順序訓練得到的once-for-all網絡的子網的top1精度:

由於空間限制,我們取8個子網絡進行比較,每個子網絡記為“(D = d, W = w, K = k)”。它表示一個所有單元都有d層的子網絡,而所有層的寬度比和內核大小都設置為w和k。與隨機順序相比,PS可以在所有架構設置下顯著提高子網的ImageNet精度。具體來說,不進行架構優化,在架構設置(D=4, W=3, K=3)下,使用226M FLOPs, PS可以達到74.8%的top1准確率,與MobileNetV3-Large相當。隨機順序只有71.5%,低了3.3%。

 

4.2 SPECIALIZED SUB-NETWORKS FOR DIFFERENT HARDWARE AND CONSTRAINTS

我們使用我們訓練好的once-for-all網絡,為不同的硬件平台提供不同的專用子網絡:從雲到邊緣設備。在雲設備上,使用帶有Pytorch 1.0+cuDNN的批處理大小為64的NVIDIA 1080Ti和V100測量GPU的延遲。CPU延遲使用批處理大小為1的Intel Xeon E5-2690 v4+MKL-DNN進行測量。在包括手機在內的邊緣設備上,我們使用三星、谷歌和帶有TF-Lite的LG手機,批處理大小為1;對於移動GPU,我們使用帶有Pytorch 1.0+cuDNN的Jetson TX2,批處理大小為16;對於嵌入式FPGA,我們使用Xilinx ZU9EG和帶有Vitis AI的ZU3EG FPGA,批處理大小為1。

Comparison with NAS on Mobile Devices.  表2報告了OFA和手機上(Pixel1)最先進的硬件感知NAS方法之間的比較:

在處理多個部署場景時,OFA比NAS更有效,因為OFA的成本是不變的,而其他的成本是與部署場景的數量(N)線性相關的。N = 40時,OFA的總二氧化碳排放是比ProxylessNAS少16倍的, 比FBNet少19×,比MnasNet少1300×(如圖5所示):

沒有再訓練,OFA能在ImageNet達到 76.0%的top1精度,比MobileNetV3-Large高0.8%,同時能保持相同d的移動延遲。通過對專用子網絡微調25個epoch,top1的精度可以進一步提高到76.4%;微調75個epoch,top1的精度可以進一步提高到76.9%。此外,我們還觀察到,有PS的OFA的准確率比沒有PS的OFA高3.6%,說明PS是有效的。

OFA under Different Computational Resource Constraints. 圖6總結了許多OFA在不同的FLOPs和Pixel1延遲約束下的結果。

OFA以389M FLOPs達到了ImageNet top1 79.1%的精度,比有着相同的FLOPs的EfficientNet-B0精確2.8%。OFA以595M FLOPs,在移動設置(<600M FLOPs)下,達到新的SOTA 80.0% ImageNet top1精度,比EfficientNet-B2高0.2%,同時僅使用少了1.68×的FLOPs。更重要的是,OFA在硬件上比EfficientNet運行快得多。具體來說,在143ms的Pixel1延遲下,OFA實現了80.1%的ImageNet top1精度,比EfficientNet-B2精度高0.3%,快2.6倍。

圖7報告了OFA和MobileNetV3在6個移動設備上的詳細比較:

值得注意的是,OFA只需訓練一次(綠色曲線),就可以在大范圍的延遲約束下生成具有多個點的整條權衡曲線。由於高昂的訓練成本,以前的NAS方法是不可能做到這點的(Tan et al., 2019; Cai et al., 2019)

OFA for Diverse Hardware Platforms.  除了移動平台,我們還利用ProxylessNAS架構空間,廣泛研究了OFA在6個附加硬件平台上的有效性(圖8)(Cai et al., 2019):

OFA可以顯著地改善准確性和延遲之間的平衡,特別是在並行性更好的gpu上。在與MobileNetV2 0.35有類似的延遲時,“OFA #25”提高了ImageNet top1的精度,從1080Ti GPU上MobileNetV2的60.3%提高到72.6%(+12.3%的改進)。我們特定模型的詳細架構如圖11所示:

它揭示了這樣一個觀點,即在不同的部署場景中使用相同的模型,只修改寬度乘子,對效率改進的影響有限:隨着延遲約束變得更緊,准確性會迅速下降。

OFA for Specialized Hardware Accelerators. 對於用於通用硬件的NAS已經進行了大量的工作,但是很少有工作關注於專門的硬件加速器。我們使用有着8-bit量化的Xilinx Vitis AI對在兩個FPGAs加速器 (ZU3EG和ZU9EG)上OFA的性能進行了定量分析,並討論了兩個設計原則。

Principle 1: 內存訪問是昂貴的,計算是廉價的。一個高效的CNN應該用很少的內存占用來做同樣多的計算。該比率被定義為算術強度(OPs/Byte)。OPs/Byte越高,內存越少,並行化就越容易。由於OFA對子網架構的多樣化選擇(1019個)(3.3節),以及OFA模型twin可以快速給出精度/延遲反饋(3.4節),進化搜索可以自動找到具有更高算術強度的CNN架構。如圖9所示:

OFA的算法強度比MobileNetV2和MnasNet高48%/43% (Xilinx Vitis AI不支持MobileNetV3)。消除內存瓶頸將導致更高的利用率和GOPS/s提高70%-90%,將操作點推到roofline模型(Williams et al., 2009)中的右上角,如圖10所示。(70%-90%在對數尺度上看起來很小,但意義重大)。

 

Principle 2: CNN架構應該與硬件加速器的成本模型共同設計。FPGA加速器有一個專門的depth-wise的引擎,它與point-wise的引擎是管道連接的。該管道吞吐量與3 * 3大小的內核非常匹配。因此,OFA的搜索模型在FPGA上只有3x3的內核(圖11,a),而5x5和7x7的內核也在搜索空間。此外,大內核有時會在FPGA上導致“out of BRAM”錯誤,從而導致較高的成本。然而,在Intel Xeon CPU上,超過50%的操作是大內核。由於計算陣列的大並行性,FPGA和GPU模型都比CPU寬。

 

5 CONCLUSION

我們提出了一種once-for-all(OFA)的新方法,它將模型訓練從架構搜索中分離出來,從而在大量的硬件平台下實現高效的深度學習部署。與以前為每個部署場景設計和訓練神經網絡的方法不同,我們設計了一個once-for-all的網絡,它支持不同的體系結構配置,包括彈性深度、寬度、內核大小和分辨率。與傳統方法相比,它大大降低了訓練成本(GPU時間、能源消耗和二氧化碳排放)。為了防止不同規模的子網絡受到干擾,我們提出了一種漸進收縮算法,使大量的子網絡達到與獨立訓練相同的精度水平。在各種硬件平台和效率約束上的實驗證明了我們方法的有效性。OFA提供了一個自動化的生態系統,在循環中高效地設計帶有硬件成本模型的高效的神經網絡。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM