DAMO-YOLO:實時目標檢測設計的報告

ReadPaperhttps://readpaper.com/pdf-annotate/note?pdfId=4748421678288076801?eId=1920373270663763712?

Abstract?

在本報告中,我們提出了一種快速準確的目標檢測方法,稱為DAMO-YOLO,它比最先進的YOLO系列實現了更高的性能。DAMO-YOLO 通過一些新技術從 YOLO 擴展,包括神經架構搜索 (NAS)、高效的重新參數化廣義 FPN (RepGFPN)、具有 AlignedOTA 標簽分配的輕量級頭和蒸餾增強。特別是,我們使用 MAE-NAS,一種由最大熵原理指導的方法,在低延遲和高性能約束下搜索我們的檢測主干,生成具有空間金字塔池和焦點模塊的類似 ResNet / CSP 的結構。在頸部和頭部的設計中,我們遵循“大頸部、小頭部”的規則。導入具有加速后融合的廣義FPN構建檢測器頸部,并通過高效的層聚合網絡(ELAN)和重新參數化升級其CSPNet。然后我們研究檢測器頭部大小會如何影響檢測性能,發現只有一個任務投影層的重頸部會產生更好的結果。此外,提出了AlignedOTA來解決標簽分配中的錯位問題。并引入蒸餾模式以將性能提高到更高的級別。基于這些新技術,我們構建了一套不同尺度的模型,以滿足不同場景的需求。對于一般行業要求,我們提出了 DAMO-YOLO-T/S/M/L。它們可以在COCO上實現43.6/47.7/50.2/51.9 mAP,在T4 GPU上延遲分別為2.78/3.83/5.62/7.95 ms。此外,對于計算能力有限的邊緣設備,我們還提出了DAMO-YOLO-Ns/Nm/Nl輕量級模型。它們可以在COCO上實現32.3/38.2/40.5 mAP,在X86-CPU上延遲為4.08/5.05/6.69 ms。我們提出的通用和輕量級模型在各自的應用場景上都優于其他 YOLO 系列模型。該代碼可在 https://github.com/tinyvision/damo-yolo?獲得。

?1. Introduction

最近,研究人員在巨大的進展中開發了對象檢測方法[1,9,11,23,24,27,33]。雖然該行業追求具有實時約束的高性能目標檢測方法,但研究人員專注于設計具有高效網絡架構 [4,16,17,29,30] 和高級訓練階段的一級檢測器 [1,22–24,26]。特別是YOLOv5/6/7[18,32,34]、YOLOX[9]和PP-YOLOE[38]在COCO上取得了顯著的AP-Latency權衡,使得YOLO系列目標檢測方法在工業中得到了廣泛的應用。

盡管目標檢測取得了很大進展,但仍有一些新技術可以進一步提高性能。首先,網絡結構在目標檢測中起著至關重要的作用。暗網在 YOLO 歷史 [1, 9, 24- 26, 32] 的早期階段占有主要地位。最近,一些作品調查了其他有效的網絡用于它們的檢測器,即 YOLOv6 [18] 和 YOLOv7。但是,這些網絡仍然是手動設計的。由于神經架構搜索 (NAS) 的發展,NAS 技術 [4, 16, 30] 可以找到許多對檢測友好的網絡結構,這與以前的手動設計的網絡相比具有很強的優越性。因此,我們利用 NAS 技術并將 MAE-NAS [30]1 導入我們的 DAMOYOLO。MAE-NAS 是一種啟發式和無訓練神經架構搜索方法,沒有 supervised 依賴,可用于在不同尺度上存檔主干。它可以生成具有空間金字塔池化和焦點模塊的類似 ResNet / CSP 的結構。

其次,檢測器在高級語義和低級空間特征之間學習足夠的融合信息至關重要,這使得檢測器頸部成為整個框架的重要組成部分。在其他著作[10,17,31,36]中也討論了頸部的重要性。特征金字塔網絡(FPN)[10]已被證明可以有效地融合多尺度特征。廣義FPN (GFPN)[17]通過一種新的女王融合改進了FPN。在DAMO-YOLO,我們設計了一個重新參數化的廣義FPN (RepGFPN)。它基于 GFPN,但涉及加速后融合、高效層聚合網絡 (ELAN) 和重新參數化。

為了在延遲和性能之間取得平衡,我們進行了一系列實驗來驗證檢測器頸部和頭部的重要性,發現“大頸部、小頭部”會導致更好的性能。因此,我們在以前的 YOLO 系列工作中丟棄了檢測器頭 [1, 9, 24-26, 32, 38],但只留下任務投影層。保存的計算被移動到頸部部分。除了任務投影模塊外,頭部沒有其他訓練層,因此我們將檢測器頭命名為 ZeroHead。結合我們的 RepGFPN,ZeroHead 實現了最先進的性能,我們相信這將為其他研究人員提供一些見解。

此外,與靜態標簽分配[43]相比,OTA[8]和TOOD[7]等動態標簽分配得到了廣泛的宣稱,取得了顯著的改進。然而,這些工作仍未解決錯位問題。我們提出了一種名為 AlignOTA 的更好解決方案來平衡分類和回歸的重要性,這可以部分解決這個問題。

最后,知識蒸餾 (KD) 已被證明在通過更大的模型監督來增強小型模型方面是有效的。該技術完全符合實時目標檢測的設計。然而,在 YOLO 系列上應用 KD 有時并不能取得顯著的改進,因為超參數很難優化,并且特征攜帶太多噪聲。在我們的 DAMO-YOLO 中,我們首先在所有大小的模型上再次進行蒸餾,尤其是在小型模型上。

如圖1所示,通過上述改進,我們提出了一系列通用和輕量級的模型,大大超過了現有技術。總之,貢獻有三方面:

1.本文提出了一種新的檢測器DAMOYOLO,它擴展了YOLO,但有了更多的新技術,包括MAE-NAS主干、RepGFPN頸部、ZeroHead、AlignedOTA和蒸餾增強。

2. DAMO-YOLO 在通用類別和輕量級類別的公共 COCO 數據集上優于最先進的檢測器(例如 YOLO 系列)。

3.DAMO-YOLO (tiny/small/medium)提出了一套不同尺度的模型來支持不同的部署。代碼和預訓練模型在 https://github.com/tinyvision/damooyolo 上發布,支持 ONNX 和 TensorRT。

?圖 2. MAE-NAS 的不同構建塊。(a) MobBlock是MobileNetV3塊的變體,是DAMO-YOLO中輕量級模型的基本塊。(b) ResBlock 源自 ResNet。DMO-YOLO-S 和 DMO-YOLO-T 建立在它之上。(c) CSPBlock來源于CSPNet,由于其在深度網絡中的優越性能,它被用作DAMO-YOLO-M和DAMO-YOLO-L模型中的基本塊。

表3。頸部深度和寬度的消融研究。“深度”表示融合塊瓶頸上的重復時間。“Width”表示特征圖的通道維度。

2. DAMO-YOLO

在本節中,我們將詳細介紹DAMOYOLO的每個模塊,包括神經架構搜索(NAS)主干、高效的重新參數化廣義FPN (RepGFPN)頸部ZeroHeadAlignedOTA標簽分配蒸餾增強。DAMO-YOLO的整個框架如圖3所示。

圖3。DAMO-YOLO網絡架構概述。1) MAE-NAS作為骨干提取多尺度特征圖;2)高效RepGFPN作為頸部,對高級語義和底層空間特征進行細化和融合;3)提出了ZeroHead,它只為每個損失包含一個任務投影層。?

2.1. MAE-NAS Backbone

以前,在實時場景中,設計師依靠Flops-MAP曲線作為評估模型性能的簡單方法。然而,模型的失敗和延遲之間的關系不一定是一致的。為了提高模型在工業部署中的實際性能,DAMO-YOLO在設計過程中優先考慮延遲-MAP曲線。

基于這一設計原則,我們使用MAE-NAS[30]在不同的延遲預算下獲得最佳網絡。MAE-NAS 構建了一個基于信息論的替代代理,以在沒有訓練的情況下對初始化網絡進行排名。因此,搜索過程只需要幾個小時,遠低于訓練成本。MAE-NAS提供了幾個基本搜索塊,如Mob-block、Res-block和CSP-block,如圖2所示。Mobblock是MobileNetV3[14]塊的變體,Res-block來源于ResNet[12],CSP-block來源于CSPNet[35]。完整的支持塊列表可以在 MAE-NAS 存儲庫 2 中找到。

我們發現,在不同尺度的模型中應用不同類型的塊可以更好地權衡實時推理。表1列出了CSPDarknet和我們的MAE-NAS骨干在不同尺度下的性能比較。在此表中,“MAE-Res”表示我們在MAENAS主干中應用Res-block,“MAE-CSP”表示我們在其中應用CSPblock。此外,“S”(Small)和“M”(Medium)代表不同尺度的主干。如表1所示,

MAE-NAS技術獲得的MAE-CSP在速度和精度方面都優于手動設計的CSP-Darknet,證明了MAE-NAS技術的優越性。此外,從表1可以觀察到,在較小的模型上使用Res-block可以在性能和速度之間取得比CSP-block更好的權衡,而使用CSP-block可以在更大更深的網絡上顯著優于Resblock。因此,我們在最終設置中的“T”(Tiny)和“S”模型中使用“MAE-Res”,在“M”和“L”模型中使用“MAE-CSP”。在處理計算能力或 GPU 有限的場景時,擁有滿足計算速度和速度嚴格要求的模型至關重要。為了解決這個問題,我們設計了一系列使用 Mob-Block 的輕量級模型。Mob-block來源于MobleNetV3[14],可以顯著減少模型計算,對CPU設備友好。

2.2.高效RepGFPN

特征金字塔網絡旨在聚合從主干中提取的不同分辨率的特征,這已被證明是目標檢測的關鍵有效部分[10,31,36]。傳統的FPN[10]引入了一種自頂向下的路徑來融合多尺度特征。考慮到單向信息流的局限性,PAFPN[36]增加了一個額外的自底向上路徑聚合網絡,但計算成本更高。BiFPN [31] 刪除了只有一個輸入邊的節點,并在同一級別上從原始輸入中添加 skiplink。在[17]中,提出了廣義FPN (GFPN)作為頸部,實現了SOTA性能,因為它可以充分交換高級語義信息和低級空間信息。在 GFPN 中,多尺度特征在前一層和當前層的兩級特征融合。更重要的是,log2(n) skip-layer 連接提供了更有效的信息傳輸,可以擴展到更深的網絡。當我們在現代 YOLO 系列模型中直接用 GFPN 替換修改后的 PANet 時,我們實現了更高的精度。然而,GFPN-的延遲基于模型遠高于基于修改panet的模型。通過分析GFPN的結構,其原因可以歸結為以下幾個方面:1)不同尺度的特征圖共享相同的信道維數;2)女王融合操作不能滿足實時檢測模型的要求;3)基于卷積的跨尺度特征融合效率不高。

基于 GFPN,我們提出了一種新穎的 Efficient-RepGFPN 來滿足實時目標檢測的設計,主要包括以下見解:1)由于不同尺度特征圖的 FLOP 差異很大,在有限的計算成本約束下很難控制每個尺度特征圖共享的相同維度通道。因此,在我們的頸部的特征融合中,我們采用了不同通道尺寸不同尺度特征圖的設置。比較了相同和不同通道的性能以及頸部深度和寬度權衡的精度優勢,表3顯示了結果。我們可以看到,通過靈活控制不同尺度的通道數,我們可以達到比在所有尺度上共享相同的通道更高的精度。當深度等于 3 且寬度等于 (96, 192, 384) 時,可以獲得最佳性能。2) GFPN通過女王融合增強了特征交互,但它也帶來了大量額外的上采樣和下采樣算子。比較了這些上采樣和下采樣算子的優點,結果如表4所示。我們可以看到,額外的上采樣算子導致延遲增加0.6ms,而精度提高僅為0.3mAP,遠遠小于額外的下采樣算子的好處。因此,在實時檢測的約束下,我們刪除了女王融合的額外上采樣操作。3)在特征融合塊中,我們首先將原始的基于3x3的卷積特征融合替換為CSPNet,得到4.2 mAP增益。之后,我們通過結合高效層聚合網絡(ELAN)[34]的重新參數化機制和連接來升級CSPNet。在不帶來額外的巨大計算負擔的情況下,我們實現了更高的精度。比較結果如表5所示。

?

2.3. ZeroHead and AlignOTA?

在目標檢測的最新進展中,解耦頭被廣泛使用[9,18,38]。使用解耦的頭部,這些模型實現了更高的 AP,而延遲顯著增加。為了權衡延遲和性能,我們進行了一系列實驗來平衡頸部和頭部的重要性,結果如表6所示。在實驗中,我們發現“大頸部、小頭部”會帶來更好的性能。因此,我們在以前的作品 [9, 18, 38] 中丟棄了解耦的頭部,但只留下任務投影層,即用于分類的線性層和用于回歸的線性層。我們將頭部命名為 ZeroHead,因為我們的頭部沒有其他訓練層。ZeroHead 可以最大程度地節省大量 RepGFPN 頸部的計算。值得注意的是,ZeroHead本質上可以被認為是耦合頭,這與其他作品中的解耦頭有很大的不同[9,18,32,38]。在頭部后的損失中,在GFocal[20]之后,我們使用質量焦點損失(QFL)進行分類監督,并使用分布焦點損失(DFL)和GIOU損失進行回歸監督。QFL 鼓勵學習分類和定位質量的聯合表示。DFL 通過將位置建模為一般分布來提供更多信息和更精確的邊界框估計。提出的DAMO-YOLO的訓練損失公式為:

除了頭部和損失,標簽分配是檢測器訓練期間的至關重要的組件,負責將分類和回歸目標分配給預定義的錨點。最近,OTA[8]和TOOD[7]等動態標簽分配得到了廣泛的宣稱,與靜態標簽分配[43]相比,取得了顯著的改進。動態標簽分配方法根據預測和基本事實之間的分配成本分配標簽,例如OTA[8]。雖然分類和回歸在損失中的對齊已被廣泛研究 [7, 20],但在目前的工作中很少提及標簽分配中的分類和回歸之間的對齊。分類和回歸的錯位是靜態分配方法中的一個常見問題[43]。雖然動態分配緩解了這個問題,但由于分類和回歸損失的不平衡,如CrossEntropy和IoU Loss[40]仍然存在。為了解決這個問題,我們將焦點損失 [22] 引入分類成本,并使用預測框和地面實況框的 IoU 作為軟標簽,公式如下:

?

?

通過這個公式,我們能夠為每個目標選擇分類和回歸對齊樣本。除了對齊的分配成本,在 OTA [8] 之后,我們從全局角度形成對齊分配成本的解決方案。我們將標簽分配命名為 AlignOTA。標簽分配方法的比較如表7所示。我們可以看到AlignOTA優于所有其他標簽分配方法。?

2.4. Distillation Enhancement(蒸餾增強)

知識蒸餾(KD)[13]是進一步提高口袋尺寸模型的性能的有效方法。然而,在 YOLO 系列上應用 KD 有時并不能取得顯著的改進,因為超參數很難優化,并且特征攜帶太多噪聲。在 DAMO-YOLO 中,我們首先在所有大小的模型上再次進行蒸餾,尤其是在小尺寸上。我們采用基于特征的蒸餾來傳遞黑暗知識,可以提取中間特征圖[15]中的識別和定位信息。我們進行快速驗證實驗,為我們的DAMO-YOLO選擇合適的蒸餾方法。結果如表 8 所示。我們得出結論,CWD 更適合我們的模型,而 MGD 比模仿復雜超參數更差,使其不夠通用。

我們提出的蒸餾策略分為兩個階段:1)我們的老師在第一階段(284 個 epoch)提取學生,在強大的馬賽克域上。面對具有挑戰性的增強數據分布,學生可以在教師指導下平滑地提取信息。2) 學生在第二階段沒有馬賽克域上微調自己(16 個 epoch)。我們在這個階段不采用蒸餾的原因是,在如此短的時間內,當老師想要將學生拉在一個奇怪的領域(即沒有馬賽克領域)時,老師的經驗會損害學生的表現。長期蒸餾會削弱損傷,但成本很高。因此,我們選擇權衡來使學生獨立。

在 DAMO-YOLO 中,蒸餾配備了兩個高級增強:1)對齊模塊。一方面,它是一個線性投影層,使學生特征適應與教師相同的分辨率 (C, H, W )。另一方面,與自適應相比,強迫學生直接逼近教師特征和學生特征會帶來很小的收益,為了削弱真實值差異帶來的效果。在減去平均值后,每個通道的標準偏差將作為 KL 損失中的溫度系數發揮作用。

?

?

?4. Comparison with the SOTA

DMO-YOLO 發布了一系列通用模型和輕量級模型,同時滿足一般場景和資源有限的邊緣場景。為了評估 DAMO-YOLO 通用模型相對于其他最先進模型的性能,我們使用 TensorRT-FP16 推理引擎對 T4-GPU 進行了比較分析。結果如表9所示,表明DAMO-YOLO的一般模型在精度和速度方面都優于競爭對手。此外,我們提出的蒸餾技術顯著提高了準確性。為了評估輕量級模型的性能,我們使用 Openvino 作為推理引擎對 Intel-8163 CPU 進行了比較分析。如表2所示,DAMO-YOLO的輕量級模型取得了實質性的領先優勢,在速度和準確性方面都大大超過了競爭對手。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/41977.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/41977.shtml
英文地址,請注明出處:http://en.pswp.cn/news/41977.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

C++ Primer Plus: 第10章(2)

第10章編程題&#xff1a; &#xff08;1&#xff09; Account.h: #ifndef ACCOUNT_H_ #define ACCOUNT_H_#include <string>class Account { private:std::string name ;std::string code ;double money ; public:Account() ;Account(std::string Name, std::string Co…

Vue history和hash模式

目錄 一、簡介 一、簡介 ~~~~~~~~ 在Vue.js中&#xff0c;路由模式是用來管理應用程序中不同頁面之間的導航的機制。Vue Router支持兩種常見的路由模式&#xff1a;history模式和hash模式。 History 模式&#xff1a; ~~~~~~~~ History模式使用瀏覽器的history.pushState API …

紅帆OA SQL注入漏洞復現

0x01 產品簡介 紅帆iOffice.net從最早滿足醫院行政辦公需求&#xff08;傳統OA&#xff09;&#xff0c;到目前融合了衛生主管部門的管理規范和眾多行業特色應用&#xff0c;是目前唯一定位于解決醫院綜合業務管理的軟件&#xff0c;是最符合醫院行業特點的醫院綜合業務管理平…

Lnton羚通關于如何使用nanoPC-T4 安裝OpenCV?

nanoPC-T4 安裝 OpenCV Note: OpenCV has been pre-installed in FriendlyCore/FriendlyDesktop (Version after 201905) and does not require manual installation. Please download the latest FriendlyCore/FriendlyDesktop Image file from the following URL: http://do…

springboot 自定義注解

1、引入maven依賴&#xff08;版本太低也會導致不生效&#xff09; <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-validation</artifactId><version>2.7.10</version></dependency…

深度分析納斯達克上市公司慧擇的競爭優勢和投資價值

來源&#xff1a;猛獸財經 作者&#xff1a;猛獸財經 一、保險行業的現狀、競爭與機遇 在疫情期間&#xff0c;很多行業的經營理念與經營方式&#xff0c;甚至客戶行為、客戶需求都發生了變化&#xff0c;進而催生出新的機遇。保險行業亦是如此&#xff0c;受疫情影響&#xf…

用Python編程實現百度自然語言處理接口的對接,助力你開發智能化處理程序

用Python編程實現百度自然語言處理接口的對接&#xff0c;助力你開發智能化處理程序 隨著人工智能的不斷進步&#xff0c;自然語言處理&#xff08;Natural Language Processing&#xff0c;NLP&#xff09;成為了解決文本處理問題的重要工具。百度自然語言處理接口提供了一系…

騰訊開啟2024校招,主要招聘5大類崗位

近日&#xff0c;騰訊的大動作一個接一個&#xff0c;前腳剛公布2023上半年財報&#xff0c;后腳就開啟了2024校招&#xff0c;不得不讓人感嘆騰訊真速度&#xff01; 此次招聘對象為畢業時間在2023年9月至2024年8月期間的2024屆應屆畢業生&#xff0c;覆蓋北上廣深等多個城市…

異步編程框架Seastar介紹

使用Seastar進行異步(Asynchronout)編程 介紹 我們在本文中介紹的Seastar&#xff0c;是一個用于在現代多核機器上&#xff0c;編寫高效復雜的服務器應用程序的C庫。 傳統上&#xff0c;用于編寫服務器應用程序的編程語言庫和框架已經分為兩個不同的陣營&#xff1a;那些注重…

環境與能源創新專題:地級市綠色創新、碳排放與環境規制數據

數據簡介&#xff1a;推動綠色發展&#xff0c;促進人與自然和諧共生是重大戰略舉措。綠色發展強調“綠水青山就是金山銀山”&#xff0c;人與自然和諧共生重在正確處理生態環境保護與經濟發展的關系。在著力于實現綠色發展的過程中&#xff0c;綠色創新是綠色發展的重要驅動因…

關于API數據接口獲取商品的數據的說明

獲取商品數據已經成為許多應用程序的重要組成部分。為了實現這一目標&#xff0c;許多公司和技術開發者使用API數據接口來獲取相關數據。本文將詳細介紹如何使用API數據接口獲取商品數據&#xff0c;并使用Python作為編程語言示例來展示相關代碼。 API數據接口是一種通信協議&…

WPF的CheckBox中的三個狀態

WPF的CheckBox中的三個狀態 CheckBox控件和RadioButton控件是繼承自ToggleButton類&#xff0c;這意味著用戶可切換他們的開關狀態&#xff0c;其中IsChecked屬性是可空的Boolean類型&#xff0c;這意味著該屬性可以設置為true&#xff0c;false或null。 null值表示不確定狀態…

spring.HttpMessageNotReadableException: JSON parse error

實體類如下&#xff1a; Value public class Search{//搜索內容String value;//是否模糊搜索boolean fuzzy true; //其實這樣寫并不是“默認”模糊搜索&#xff0c;而是“一定是”模糊搜索 }spring.HttpMessageNotReadableException: JSON parse error: Cannot construct ins…

GPU Microarch 學習筆記 [1]

WARP GPU的線程從thread grid 到thread block&#xff0c;一個thread block在CUDA Core上執行時&#xff0c;會分成warp執行&#xff0c;warp的顆粒度是32個線程。比如一個thread block可能有1024個線程&#xff0c;分成32個warp執行。 上圖的CTA&#xff08;cooperative thre…

10條SQL優化技巧

一、一些常見的SQL實踐 &#xff08;1&#xff09;負向條件查詢不能使用索引 select * from order where status!0 and stauts!1 not in/not exists都不是好習慣 可以優化為in查詢&#xff1a; select * from order where status in(2,3) &#xff08;2&#xff09;前導模…

Codeforces Round 893 (Div. 2)B題題解

文章目錄 [The Walkway](https://codeforces.com/contest/1858/problem/B)問題建模問題分析1.分析所求2.如何快速計算每個商販被去除后的餅干數量代碼 The Walkway 問題建模 給定n個椅子&#xff0c;其中有m個位置存在商販&#xff0c;在商販處必須購買餅干吃&#xff0c;每隔…

Python程序設計——字符串處理的特殊方法

學習目標&#xff1a; 學習如何創建字符串使用len、min和max函數獲取一個字符串的長度、串中的最大和最小的字符使用下標運算符([])訪問字符串中的元素使用截取運算符str[ start:end]從較長的字符串中得到一個子串使用運算符連接兩個字符串&#xff0c;通過*運算符復制一個字符…

【Odroid C4】交叉編譯工具鏈安裝以及QT交叉編譯環境搭建

【Odroid C4】交叉編譯工具鏈安裝以及QT交叉編譯環境搭建 虛擬機環境&#xff0c;UBUNTU20.04 文章目錄 【Odroid C4】交叉編譯工具鏈安裝以及QT交叉編譯環境搭建一、Odroid C4交叉編譯工具鏈安裝二、QT下載及編譯安裝1.QT下載2.交叉編譯QT 配置QtCreator可以[參考](https://bl…

快速入門vue3新特性和新的狀態管理庫pinia

(創作不易&#xff0c;感謝有你&#xff0c;你的支持&#xff0c;就是我前行的最大動力&#xff0c;如果看完對你有幫助&#xff0c;請留下您的足跡&#xff09; 目錄 Vue3.3新特性 defineOptions defineModel pinia 介紹 與 Vuex 3.x/4.x 的比較 安裝 核心概念 定義…

前饋神經網絡多分類任務

pytorch深度學習的套路都差不多&#xff0c;多看多想多寫多測試&#xff0c;自然就會了。主要的技術還是在于背后的數學思想和數學邏輯。 廢話不多說&#xff0c;上代碼自己看。 import torch import numpy as np import torch.nn as nn import torchvision import torchvisi…