深度解讀輕量網絡GhostNet:不用訓練、即插即用的CNN升級組件究竟如何實現?

2021-03-02 人工智慧前沿講習

CVPR 2020 上個月放榜,其中有一篇論文提出了一種新奇的輕量級卷積神經網絡設計,思想非常巧妙,於是對其進行閱讀和代碼實踐,並總結一些可能的下一步工作,供大家參考,共同學習。本筆記主要分為三個部分,第一部分是論文閱讀,對論文中要點進行講解。第二部分是代碼實驗部分,對論文中提出的部分實驗進行代碼實驗,包含模型訓練,參數量計算,特徵圖可視化。第三部分是下一步工作,提出一些失敗及未實現的想法,來實現不需要訓練的即插即用Ghost module。論文題名:《GhostNet: More Features from Cheap Operations》 
arxiv: https://arxiv.org/abs/1911.11907github :https://github.com/huawei-noah/ghostnet作者翻譯:https://zhuanlan.zhihu.com/p/109325275在優秀CNN模型中,特徵圖存在冗餘是非常重要的,但是很少有人在模型結構設計上考慮特徵圖冗餘問題(The redundancy in feature maps)。而本文就從特徵圖冗餘問題出發,提出一個僅通過少量計算(cheap operations)就能生成大量特徵圖的結構——Ghost Module。Ghost Module通過怎麼樣的操作生成特徵圖呢?這個操作是,一系列線性操作(a series of linear transformations)在這裡,經過線性操作生成的特徵圖稱為ghost feature maps,而被操作的特徵圖稱為intrinsic feature maps。Ghost Module的操作那麼魔幻,那麼它有什麼作(you)用(dian)? 1. 即插即用:Ghost Module是一個即插即用模塊,可以無縫銜接現有的CNN中。2. 採用Ghost Module組成的Ghost bottlenecks,設計出Ghost Net,在ILSVRC-2012上top1超過Mobilenet-V3,並且參數更少。首先,特徵圖冗餘((The redundancy in feature maps))具體是什麼意思?其次,ghost feature maps 和intrinsic feature maps又是什麼?還有,一系列線性操作(a series of linear transformations)是什麼?它為什麼是cheap operations?最後,Ghost Module長什麼樣?Ghost bottlenecks長什麼樣?Ghost Net長什麼樣?這真是吊胃口的摘要,為了回答以上四個問題,接著往下看:先找找關於特徵圖冗餘的解釋,Introduction 第四段提到:"For exam- ple, Figure 1 presents some feature maps of an input image generated by ResNet-50, and there exist many similar pairs of feature maps, like a ghost of each another".對ResNet-50第一個殘差塊特徵圖進行可視化,但是,並沒有直接說ResNet-50特徵圖存在冗餘,而是用了這樣的一句話「there exist many similar pairs of feature maps」。那麼來看看Figure 1吧。圖1 對ResNet-50的特徵圖進行可視化,並強調了3組特徵圖,分別用紅綠藍三種顏色圈出來了,說這些特徵圖,可以近似的通過cheap operations來生成。又出現了cheap operations,到底是啥?這個圖並沒有給答案,只告訴了大家cheap operations就是那個小扳手(皮...),繼續看吧。再次強調特徵圖冗餘就到了3.1 Ghost Module for More Features 第一段,「Given the widely existing redundancy in intermediate feature maps calculated by mainstream CNNs as shown in Figure 1」這裡說圖1那樣就是冗餘了,請大家回到圖1去看吧,哈?圖1叫我往下看,看到這裡又叫我回圖1去找特徵圖冗餘?第三段」the output feature maps of convolutional layers often contain much redundancy, and some of them could be similar with each other「這裡說看著相似的那些就是冗餘了,原來如此,圖1中,作者用紅綠藍重點給我們標記的那些就是冗餘特徵圖的代表到這裡,可以知道那些相似的特徵圖被認為是冗餘的,但是特徵圖冗餘是什麼,是沒有定義的,只能意會,第一個問題到此結束。問題2:Ghost feature maps 和 Intrinsic feature maps 是什麼?作者給那些特徵圖賦名為Ghost,的確用心良苦,畢竟這兩個概念難以言傳,請往下意會吧。Introduction 第5段提到 「Given the intrinsic feature maps from the first part, a series of simple linear operations are then applied for generating more feature maps」。從這裡知道兩者的關係,即 intrinsic feature maps 執行 linear operations 得到 ghost feature maps更形象的參見圖2,即假設一組特徵圖中,一部分是Intrinic,而另外一部分是可以由 intrinsic 通過cheap operations來生成的。cheap operations反覆出現多次,但是到底是什麼操作,還是不知道,下面看第三個問題。問題3:Linear transformations 和 Cheap operations 是什麼?其實,從上文就知道 linear operations 等價於 cheap operations,它們是一回事。文中3.1 終於提到了,linear operations 即是 諸如3*3的卷積,或者5*5的卷積。「Note that the linear operations Φ operate on each channel whose computational cost is much less than the ordinary convolution. In practice, there could be several different linear operations in a Ghost module, e.g. 3 × 3 and 5 × 5 linear kernels, which will be analyzed in the experiment part.」

弄清楚摘要裡出現的一系列概念,終於可以進入論文的核心——Ghost Module,Ghost Bottlenecks, Ghost Net

問題4:Ghost Module長什麼樣?Ghost Bottlenecks長什麼樣?Ghost Net長什麼樣?通常的卷積如圖2(a)所示,而Ghost Module則分為兩步操作來獲得與普通卷積一樣數量的特徵圖(這裡需要強調,是數量一樣)。第一步:少量卷積(比如正常用32個卷積核,這裡就用16個,從而減少一半的計算量);第二步:cheap operations,如圖中的Φ表示,從問題3中可知,Φ是諸如3*3的卷積,並且是逐個特徵圖的進行卷積(Depth-wise convolutional)。了解了Ghost Module,下面看Ghost Bottlenecks。論文3.2 介紹Ghost Bottlenecks ,結構與ResNet的是類似的,並且與mobilenet-v2一樣在第二個module之後不採用ReLU激活函數。左邊是stride=1的Ghost Bottlenecks,右邊是stride=2的Ghost Bottlenecks,目的是為了縮減特徵圖大小。接著來看Ghost Net,Ghost Net結構與MobileNet-V3類似,並且用了SE結構,如下表,其中#exp表示G-bneck的第一個G-Module輸出特徵圖數量到這裡,論文中概念全都清晰了,下面看看實驗及效果吧。實驗及結果實驗一,Toy Experiments,這個實驗結果並不重要,只需要知道結論可以了,即 cheap operations中的卷積核選擇3*3最佳。在這裡,有探討 cheap operations為什麼用卷積,請看「Besides convolutions used in the above experiments, we can also explore some other low-cost linear operations to construct the Ghost module such as affine transformation and wavelet transformation. However, convolution is an efficient operation already well support by current hardware and it can cover a number of widely used linear operations such as smoothing, blurring, motion, etc. Moreover, although we can also learn the size of each filter w.r.t. the linear operation Φ, the irregular module will reduce the efficiency of computing units (e.g. CPU and GPU).」簡單地說,卷積高效且高質,所以linear transformations和cheap operations就是卷積,沒錯了。實驗二,在Cifar10上,對VGG-16和ResNet-56進行ghost module的即插即用實驗,具體做法是,對於VGG-16和ResNet-56,其中的所有卷積替換為Ghost module,並命名為 Ghost-VGG-16和Ghost-ResNet-56。實驗結果如下表,精度不怎麼變化的條件下,參數和FLOPs均減少一半左右,效果不賴。作者還對 vanilla VGG-16 以及 Ghost-VGG-16的第二個卷積特徵圖進行可視化,大意就是經過 cheap operation,得到的特徵圖與vanilla的差不多實驗三,在Imagenet 對ResNet-50進行ghost module的即插即用實驗這裡s=4,所以參數和FLOPs大約也減小為1/4讀完論文就迫不及待想試試神奇的ghost module的能力。由於沒有設備,未能在imagenet上訓練ghostnet,這裡僅對cifar10進行了復現實驗,有機器的話,修改模型和dataloader就可以訓練imagenet了。1. 訓練模型,訓練文中提到的vgg16, ghost-vgg16, resnet56, ghost-resnet562. 計算Weights和FLOPs, 計算4個模型的Weights和FLOPs3. 可視化特徵圖,對vgg16,ghost-vgg16所有卷積特徵圖進行可視化上述實現代碼在:https://github.com/TingsongYu/ghostnet_cifar10ghost部分:https://github.com/huawei-noah/ghostnetvgg部分:https://github.com/kuangliu/pytorch-cifarresnet部分:https://github.com/akamaster/pytorch_resnet_cifar10實驗1. 訓練模型這部分訓練論文中提到的vgg16, ghost-vgg16, resnet56, ghost-resnet56從http://www.cs.toronto.edu/~kriz/cifar.html 下載python版,得到cifar-10-python.tar.gz,解壓得到 cifar-10-batches-py,並放到ghostnet_cifar10/data下,然後執行 python bin/01_parse_cifar10_to_png.py,可在data/文件夾下獲得cifar10_train 和 cifar10_test兩個文件夾
nohup python 02_main.py -gpu 1 0 -arc resnet56 > resnet56.log 2>&1 &

nohup python bin/02_main.py -max_epoch 190 -lr 0.1 -gpu 1 0 -arc resnet56 -replace_conv > ghost-resnet56.log 2>&1 &

nohup python bin/02_main.py -max_epoch 190 -lr 0.1 -gpu 1 0 -arc vgg16 > vgg16.log 2>&1 &

nohup python bin/02_main.py -max_epoch 190 -lr 0.1 -gpu 1 0 -arc vgg16 -replace_conv > ghost-vgg16.log 2>&1 &

- replace_conv, 表示是否將模型中的conv2d層替換為GhostModule- arc,目前寫死了,只支持resnet56, vgg16,可自行修改- pretrain,訓練ghost-***時,加載baseline的卷積核參數,這個不屬於論文範疇,屬於拓展的訓練方法,拓展部分講解- frozen_primary,凍結primary部分的卷積核,訓練ghost-***時,採用baseline的卷積核參數初始化之後對primary部分卷積核進行凍結,只訓練cheap conv部分- low_lr,primary部分卷積核學習率是否小10倍- point_conv,block中第一個primary是否採用1*1卷積結構比較清晰,分為5個步驟, 數據--模型--損失函數--優化器--迭代訓練核心在於replace_conv函數進行卷積核替換為GhostModule,實現論文的操作,只需要傳入三個參數,分別是model, GhostModule和arc即可實驗結果輸出均在results/文件夾下,以時間戳為子文件夾,未自動記錄log實驗超參按Ghostnet論文中提到那樣,與Resnet論文中保持一致,lr=0.1, bs=128,2個gpu,epoch通過iteration轉換得來的實驗日誌、曲線、checkpoint均在results裡獲得。實驗結果如下表所示,與原文中提到的精度還是有一點點差距,不知是什麼原因,大家也可以嘗試一下參照論文中的設置進行實驗,歡迎大家貢獻自己的訓練log和results到github上供大家一起學習。實驗2. 計算Weights和FLOPs腳本:bin/03_compute_flops.pyWeights和FLOPs的計算採用torchstat工具,必須是python3以上才可安裝安裝方法:pip install torchstattorchstat網站:https://github.com/Swall0w/torchstat方法:執行03_compute_flops.py 即可得到Weights和FLOPs,得到的結果與論文中有一些誤差,具體如下:實驗3. 可視化特徵圖方法:運行腳本會在 results/runs下以時間戳為子文件夾記錄下events file,然後藉助tensorboard就可以查看特徵圖與論文一致,對vgg16和ghost-vgg16進行可視化,可視化的圖片也與論文一致,是那只可愛的小狗,可是論文沒告訴大家那張圖片在哪裡,所以我人肉把那張可愛的狗狗給人肉出來了,在cifar10_train/5/5_11519.pngghost-vgg16的第二個卷積部分的primary和cheap的卷積特徵圖如下:在這裡發現cheap conv中有死神經元,輸出是全黑的,不知道是哪個地方出錯了,是否是這裡導致模型指標達不到論文的水平呢?大家可以關注一下這個問題
ghostmodule的思想是很巧妙的,它還有很多東西可以改進,可以去做的地方,這裡就提幾個想到的方案,但是經過代碼實踐失敗的idea。圖中可知,Ghost module中的primary conv與原始卷積是一模一樣的操作,唯一不同是cheap conv的逐通道卷積會改變一半的特徵圖,那麼能否找到恰當的逐通道卷積核,讓這一半特徵圖儘可能的與原始卷積得到的特徵圖一模一樣,就可以實現不需要訓練的即插即用。思想就是,讓Ghost module輸出的特徵圖保持與原始卷積一致,那麼就可以實現不需要訓練的即插即用。1. 針對primary convolutoin:先從baseline模型中挑選一半的卷積核直接賦值給Ghost module的primary conv,這一步是完全等價的,很好理解。2. 針對cheap convolution:找到恰當卷積核權值使得Ghost module輸出的特徵圖與原始卷積儘可能保持一致方案1:藉助baseline的卷積核參數從baseline中挑選卷積核賦值到 ghost-baseline模型的primary convolution具體操作只需要在 02_main.py 中 添加-pretrain,即可在replace_conv函數中執行baseline卷積核賦值操作。在這裡就會有一個問題,假設baseline的卷積層2K個卷積核,那麼如何挑選出K個最有價值的卷積核呢? 這是最頭疼的問題,按論文的思想,應該從特徵圖上去觀察,哪些卷積核得到的特徵圖比較接近,那麼就從相近的特徵圖對應的卷積核中挑選出一個。這裡就採用了卷積核聚類的方法來挑選8個卷積核,然後賦值。這個方案效果不好,多種嘗試均存在掉點,於是放棄了,大家也可以嘗試不同超參進行訓練,看一下效果。問題1. 如何從baseline中2K個卷積核中挑選K個卷積核?2. 採用聚類方法對卷積核進行聚類,聚類類別為K個類別;3. 對卷積核進行L1排序,挑選L1較大的前K個;上述4個方法匯總,1,3,4都可在代碼中找到對應函數,但由於效果不好,就沒有指出。問題2. ghost-baseline訓練中,primary是否需要更新?按論文的思想,primary 卷積核來自baseline的卷積核,應該是一個已經訓練得很好的卷積核了,因此不需要再訓練,只要保證cheap convolution的卷積核學習到比較好的線性變換就可以。但實際上,如果凍結primary的卷積核,模型性能大幅下降,這裡可以通過參數 -low_lr 和 -frozen_primary分別實現primary採用較小學習率或完全不更新。由於primary卷積核來自baseline,特徵圖拼接部分應該按卷積核順序拼接,否則下一個primary卷積接收的特徵圖就亂了。因此對Ghost Module進行了少少修改,增加fmap_order參數用於記錄卷積核順序,同時在forward中增加特徵圖排序。經過不斷實驗,想通過baseline的訓練參數進行即插即用的方案暫時以失敗告終。想從baseline中借用已經訓練好的卷積核方案還不成熟,希望大家可針對這個想法進一步改進,按論文中的理論,baseline中的卷積核應該可以拿到ghost-baseline中用一用的。方案2:真正意義的即插即用文中提到的即插即用是模型結構的變換,但是還需要重新訓練,那麼有沒有方案實現真正意義的即插即用,不用訓練?要實現不訓練的即插即用,就要回顧Ghost Module對原始Conv的改變,這裡還要回顧這張圖:從圖中可以發現,唯一變化的地方就是 cheap operation導致一半的特徵圖變化。因此,重點關注cheap部分的卷積核,只要這部分的卷積核能實現從intrinsic feature maps中變換得到與baseline卷積核對input進行卷積得到的特徵圖一致的特徵圖,那麼Ghost Module就實現了不需要訓練的即插即用。上面那句話很是繞口,下面配圖解釋方案2的想法,如何可以實現不訓練的即插即用。先看下圖,上半部分是正常的卷積,下半部分是Ghost module示意圖。為了更好理解intrinsic和ghost,正常卷積的卷積操作拆分為兩個部分,分別是W_i,和W_g,分別對應intrinsic和ghost,其中W_i是需要保留的卷積核,它得到的特徵圖為F_i,這一部分在Ghost Module中是完全被保留的,因此它的特徵圖不會發生變化,發現變化的是W_g部分卷積核卷積得到的F_g。 再看下半部分的Ghost Module中,特徵圖被變化的是cheap ops中的生成的F_c。如何找到恰當的權值W_c使得F_c等價於F_g呢?為了得到W_c的權值,可以從文中的假設出發,intrinsic feature maps和ghost feature maps存在線性變換的話,勢必存在公式F_g = W*F_i, 其中W是權值矩陣。卷積操作又可以寫成矩陣乘法的形式,那麼我們可以找到W的權值,請看下圖公式這裡存在一個問題,W_i是否可逆?大部分情況都是不可逆的,所以這個方案通過這個思路還是受阻的,當然大家可以嘗試求偽逆,得到W矩陣,然後賦值給cheap ops中的卷積核,試一下效果,這裡僅提供一個思路,就沒有去實現了。方案3:定製符合Ghost module的baseline方案2中無法找到合適的線性變換,使得F_g = F_i ,其根本原因是baseline的卷積部分的卷積核之間不存在這種線性關係。那麼,為了實現不訓練的即插即用,是否可以從baseline結構出發,設計一個卷積核內部存在線性變換的模型結構,然後再用以上等價方式進行變換到ghost module。不知道卷積核內部存在線性變換的結構是否已經有論文提出?如果有,請發郵件(yts3221@126.com)或評論告訴大家吧。Ghost Module的想法很巧妙,可即插即用的實現輕量級卷積模型,但若能實現不訓練的輕量級卷積模型,那就更好了。這也是本筆記中遺憾的部分,未能實現不訓練的即插即用,在此希望集思廣益,改進上述提出的不成熟方案,說不定GhostNet-V2就誕生了,當然更期待原作者提出GhostNet-V2。為了方便大家閱讀和實踐,在公眾號後臺回復 ghostnet 即可獲取論文原文和文中提到的vgg model下載。

相關焦點

  • 輕量網絡之GhostNet
    Ghost模塊是可插拔的,適用於升級現有CNN網絡,Ghost 瓶頸模塊是通過堆疊Ghost模塊實現,並構建完整的輕量GhostNet。在ImageNet2012數據集上,top-1準確率為75.7%超過了此前MobileNetV3.
  • DeepMind AI 關係推理超越人類:深度神經網絡模塊即插即用
    一個是視覺互動網絡 VIN,能夠預測視覺場景中各個物體在未來幾百步所處位置,另一個則是模塊化的、具有關係推理能力的深度神經網絡架構 RN,可以「即插即用」,提升其他深度神經網絡結構(如 CNN)關係推理的能力。在李飛飛等人提出的圖像理解數據集 CLEVR 測試結果表明,RN 的總體推理正確率已經達到 95.5%,超越人類水平。
  • 即插即用!TBC:卷積新形態,實現更強的CNN!適用於分類/檢測/分割等
    論文:https://arxiv.org/abs/2009.12021這篇文章提出了TBC(Tied Block Convolution)卷積,實現更強的CNN模型,是一種新的卷積形態,即插即用!作者單位:加州大學伯克利分校  1、簡介卷積是卷積神經網絡(CNN)的主要構建塊。通過實驗觀察到,通道數量隨著深度的增加而增加,優化後的CNN通常具有高度相關的Filters,從而降低了特徵表示的表達能力。
  • 【源頭活水】Sparse R-CNN:簡化版fast rcnn
    但是你是否想過去掉RPN,僅僅在fast rcnn算法基礎上額外引入點新技術就可以實現更簡潔、更高精度的替代算法?本文借鑑了最新提出的detr算法核心思想,從而實現了上述想法。Sparse R-CNN極其簡單,不需要設置煩人的密集anchor,不需要RPN、不需要複雜後處理和nms,不需要小心的平衡RPN和fast rcnn訓練過程,也沒有難調的超參,和detr一樣完美。
  • 了解一下即插即用的硬體和非即插即用的硬體的使用與管理
    按照安裝的類型來分,計算機硬體可以分為即插即用型硬體和非即插即用型硬體。一、即插即用型硬體計算機在裝上一些新硬體以後,必須安裝相應的驅動程序及配置相應的中斷、分配資源等操作才能使新硬體正常使用。多媒體技術的發展,使人們需要的硬體越來越多,安裝新硬體後的配置工作就成為讓人頭痛的事。
  • 即插即用免布線 ZINWELL電力貓PLQ-5100
    了解電力貓的人都知道,電力貓最大的特點是「不用布網線,即插即用」。它的工作原理很簡單,利用家庭、小型企業的電力線路,將內部的網絡設備整合成一個整體。電力貓除了可以解決寬帶網絡的布線難題外,還適用於IPTV的布線。  也許有些人覺得電力貓很神奇。其實,電力線上網在歐美國家盛行已久,只是國內相對陌生。
  • 如何評價Sparse R-CNN,目標檢測未來會如何發展?
    我之前跟mentor討論,他堅信cnn上也能像detr一樣去掉nms,但是我就勸他說不用position encoding 這樣的東西,cnn這個平滑性好像必須有這麼個設計,之後的嘗試也完全走偏了,這個認知在dense anchor的基礎上也是對的,但是之後就往怎麼增加feature map高頻上做了,完全沒意識到dense anchor有什麼問題,當然也承認,認識到我也一點不敢想能做成
  • 即插即用的大屏聊天?
    不過近期來到PChome的這款奧尼C30攝像頭有些不太一樣,它是一款專門主打電視網絡聊天的新品。根據官方宣稱,這款攝像頭不需要驅動,可以直接在電視上使用前言 即插即用的大屏聊天?
  • 典型的深度學習算法(一):卷積神經網絡(CNN)
    通過上一篇文章,相信大家對深度學習的概念、原理已經有了大致了解,近期企通查將會對深度學習中的幾種典型算法進行介紹。在深度學習領域中,已經驗證的典型成熟算法有卷積神經網絡(CNN)、循環神經網絡(RNN)、生成對抗網絡(GAN)、深度強化學習(DRL)等,下面企通查將帶領大家對典型的深度學習算法之一——卷積神經網絡(CNN)一探究竟。
  • 微軟「劇透」:首推Azure邊緣資料庫、發布即插即用的IoT服務
    不過,眼下的微軟正在押注強化學習,不需要通常用於機器學習的標記訓練數據,相反,它將不斷嘗試根據用戶的行為找到實現給定目標的最佳方法。微軟表示自己的行業首家(一直在Xbox上測試)。對話轉錄是微軟在認知服務陣容中現有的語音到文本功能的一部分,可以標記不同的揚聲器,實時轉錄對話甚至處理串擾。它已經與Microsoft Teams和其他會議軟體集成。
  • 深度學習目標檢測系列:faster RCNN實現|附python源碼
    本文將使用一個非常酷且有用的數據集來實現faster R-CNN,這些數據集具有潛在的真實應用場景。問題陳述數據來源於醫療相關數據集,目的是解決血細胞檢測問題。任務是通過顯微圖像讀數來檢測每張圖像中的所有紅細胞(RBC)、白細胞(WBC)以及血小板。
  • Mask R-CNN官方實現「又」來了!訓練速度是原來2倍
    不過它是基於Caffe 2深度學習框架編寫的。這一次,在Caffe2項目併入PyTorch半年之後,Facebook換上了更受歡迎的PyTorch框架。 除了更改框架,Mask R-CNN Benchmark相比它的「前輩」Detectron,訓練速度提高了一倍。
  • RTI公司在DistribuTECH國際大展上演示電動汽車和即插即用DER解決...
    RTI公司的電動汽車充電設備解決方案基於RTI Connext® DDS,將邊緣智能與電動汽車充電樁、公用事業/私人DER及其他電網資產的實時控制結合起來,不僅提供了電動汽車自動控制充電功能,而且無需為容量升級或需求增加而支付費用。
  • 港中文MMLab | 由簡入難,即插即用:自步對比學習
    這裡著重區分一下目前很受關注的無監督預訓練(Unsupervised Pre-training)任務,存在兩點主要區別:1)無監督預訓練任務從網絡隨機初始化開始,無監督重識別任務從預訓練好的網絡開始;2)無監督預訓練的網絡需要經過fine-tune才可以應用在下遊任務上,而無監督重識別任務本身可以看作一個無監督的下遊任務,經過訓練的網絡可直接部署。
  • 深度學習入門教程:手把手帶你用Numpy實現卷積神經網絡(一)
    本教程由深度學習中文社區(Studydl.com)持續發布與更新, 教程中完整代碼已上傳至github上, 可關注我百家號後發送消息"CNN代碼", 獲得地址.前言Numpy是一個非常好用的python科學計算的庫,CNN是現在視覺領域深度學習的基礎之一。
  • 強化學習、聯邦學習、圖神經網絡,飛槳全新工具組件詳解
    機器之心發布機器之心編輯部11 月 5 日,在 Wave Summit+2019 秋季深度學習開發者峰會上,飛槳全新發布和重要升級了最新的 21 項進展,在深度學習開發者社區引起了巨大的反響。今天給大家帶來的是系列文章之飛槳工具組件解讀。
  • 華為諾亞方舟實驗室開源即插即用的多用卷積核(NeurIPS 2018)
    華為諾亞方舟實驗室開源了一種即插即用的卷積核,該項工作發表在NeurIPS 2018上,論文題目為《Learning Versatile Filters
  • 卷積神經網絡CNN如何訓練?
    可是,卷積、池化、Softmax……究竟長啥樣,是怎樣相互連接在一起的?對著代碼憑空想像,多少讓人有點頭皮微涼。於是,有人乾脆用Unity給它完整3D可視化了出來。還不光是有個架子,訓練過程也都呈現得明明白白。比如隨著epoch(迭代次數)的變化,訓練過程中各層出現的實時變化。
  • Matlab編程之——卷積神經網絡CNN代碼解析
    deepLearnToolbox-master是一個深度學習matlab包,裡面含有很多機器學習算法,如卷積神經網絡CNN,深度信念網絡DBN,
  • 為什麼電腦顯示器變成通用非即插即用監視器?
    然後也是非即插即用的監視器。具體做法就是桌面右擊打開顯卡設置,到調節解析度那裡,然後自定義解析度,調到你最佳的解析度。 win10會自動又把驅動給更新了,容易出現【通用非即插即用監視器】。所以需要在組策略裡把集顯驅動更新給禁用掉。