1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        CNN可視化技術(shù)總結(jié)

        共 10486字,需瀏覽 21分鐘

         ·

        2021-02-25 22:02

        ↑ 點(diǎn)擊藍(lán)字?關(guān)注極市平臺

        作者丨仿佛若有光
        來源丨CV技術(shù)指南
        編輯丨極市平臺

        極市導(dǎo)讀

        ?

        本文基本介紹完了目前CNN可視化的一些方法,即特征圖可視化,卷積核可視化和類可視化,并總結(jié)了一些可視化工具與項(xiàng)目。?>>加入極市CV技術(shù)交流群,走在計(jì)算機(jī)視覺的最前沿

        目錄:

        1.特征圖可視化方法

        2.卷積核可視化

        3.類可視化

        4.可視化工具與項(xiàng)目

        一、特征圖可視化方法

        在CV很多方向所謂改進(jìn)模型,改進(jìn)網(wǎng)絡(luò),都是在按照人的主觀思想在改進(jìn),常常在說CNN的本質(zhì)是提取特征,但并不知道它提取了什么特征,哪些區(qū)域?qū)τ谧R別真正起作用,也不知道網(wǎng)絡(luò)是根據(jù)什么得出了分類結(jié)果。如在上次解讀的一篇論文《Feature Pyramid Transformer》(簡稱FPT)中,作者提出背景信息對于識別目標(biāo)有重要作用,因?yàn)殡娔X肯定是在桌上,而不是水里,大街上,背景中的鍵盤鼠標(biāo)的存在也能輔助區(qū)分電腦與電視機(jī),因此作者提出要使用特征金字塔融合背景信息。從人的主觀判斷來看,這點(diǎn)非常合理。但對于神經(jīng)網(wǎng)絡(luò)來說,F(xiàn)PT真的有融合背景信息,而普通CNN網(wǎng)絡(luò)沒有融合背景信息?又或者說,一般而言,除了提出的新模型,還會加上主觀設(shè)計(jì)的各種tricks,確定最后是因?yàn)槿诤狭吮尘靶畔⒍忍岣吡?,還是說背景確實(shí)融合了,但實(shí)際上對精度沒有影響,而是各種tricks起了作用?這一切并不確定,因?yàn)椴⒉淮_定CNN到底學(xué)到了什么。

        解決這個(gè)問題的辦法有很多,一個(gè)是想辦法看看CNN內(nèi)部學(xué)到了什么,一個(gè)是控制變量法。提到這個(gè)控制變量法,在某一篇論文中(我對不起我的讀者,論文累積量太大,忘記是哪一篇,只記得該論文的一些新穎之處),在設(shè)計(jì)了一個(gè)新的模型后,通過改變卷積層的某些通道,來看最后模型的精度的變化,從而確定哪些通道對這個(gè)模型是真正起作用的,而哪些是冗余的。按照這個(gè)思路,我們或許可以在數(shù)據(jù)預(yù)處理時(shí),故意裁剪掉人主觀認(rèn)為有用的背景信息,例如裁剪輔助識別電腦的桌子,鍵盤鼠標(biāo),重新訓(xùn)練FPT,從而看最終精度有沒有影響。很明顯,這種方法理論上是可行的,但實(shí)際上工作量巨大,不現(xiàn)實(shí)。而CNN可視化是值得考慮的方法。

        除了上面提到的一點(diǎn),CNN可視化的作用還有哪些?

        在少數(shù)提出新模型或新methods的論文中,往往會給出這個(gè)模型的一些可視化圖來證明這個(gè)模型或這個(gè)新methods對于任務(wù)的作用,這一點(diǎn)不僅能增加新模型或新methods可信度,也能起到增加工作量,增加論文字?jǐn)?shù)的作用,如研究者想到一個(gè)method,一兩頁就介紹加推理加證明完了,效果明顯,但作為一篇論文卻字?jǐn)?shù)太少,工作量不夠多,就可以考慮可視化使用了這個(gè)methods的網(wǎng)絡(luò)與沒有使用這個(gè)methods的網(wǎng)絡(luò),進(jìn)行對比,分析分析,就可以變成一篇完整的論文了。此外,CNN可視化還有一個(gè)作用,根據(jù)可視化某個(gè)網(wǎng)絡(luò)的結(jié)果分析其不足之處,從而提出新的改進(jìn)方法。例如:ZFNet正是對AlexNet進(jìn)行可視化后改進(jìn)而來,獲得了ILSVRC2014的冠軍。

        CNN可視化方法

        一、特征圖可視化。特征圖可視化有兩類方法,一類是直接將某一層的feature map映射到0-255的范圍,變成圖像。另一類是使用一個(gè)反卷積網(wǎng)絡(luò)(反卷積、反池化)將feature map變成圖像,從而達(dá)到可視化feature map的目的。

        二、卷積核可視化。

        三、類激活可視化。這個(gè)主要用于確定圖像哪些區(qū)域?qū)ψR別某個(gè)類起主要作用。如常見的熱力圖(Heat Map),在識別貓時(shí),熱力圖可直觀看出圖像中每個(gè)區(qū)域?qū)ψR別貓的作用大小。這個(gè)目前主要用的方法有CAM系列(CAM、Grad-CAM、Grad-CAM++)。

        四、一些技術(shù)工具。通過一些研究人員開源出來的工具可視化CNN模型某一層。

        CNN技術(shù)總結(jié)將按照這四個(gè)方法,分成四個(gè)部分總結(jié)CNN可視化技術(shù)。對于以后出現(xiàn)新的技術(shù),或者補(bǔ)充,將更新在公眾號CV技術(shù)指南的技術(shù)總結(jié)部分。在本文,主要介紹第一類方法,特征圖可視化。

        直接可視化

        單通道特征圖可視化,由于feature map并不是在0-255范圍,因此需要將其進(jìn)行歸一化。以pytorch為例,使用torchvision.utils.make_grid()函數(shù)實(shí)現(xiàn)歸一化

        def make_grid(tensor, nrow=8, padding=2,              normalize=True, range=None, ??????????????scale_each=False,pad_value=0):

        多通道特征圖的顯示,即對某一層所有通道上的特征圖融合顯示,在使用make_grid函數(shù)后,pytorch環(huán)境下可使用tensorboardX下的SummerWriterh中的add_image函數(shù)。

        本部分內(nèi)容參考鏈接:https://zhuanlan.zhihu.com/p/60753993

        反卷積網(wǎng)絡(luò)( deconvnet )

        feature map可視化的另一種方式是通過反卷積網(wǎng)絡(luò)從feature map變成圖像。反卷積網(wǎng)絡(luò)在論文《Visualizing and Understanding Convolutional Networks》中提出,論文中提出圖像像素經(jīng)過神經(jīng)網(wǎng)絡(luò)映射到特征空間,而反卷積網(wǎng)絡(luò)可以將feature map映射回像素空間。

        如下圖所示,反卷積網(wǎng)絡(luò)的用途是對一個(gè)訓(xùn)練好的神經(jīng)網(wǎng)絡(luò)中任意一層feature map經(jīng)過反卷積網(wǎng)絡(luò)后重構(gòu)出像素空間,主要操作是反池化unpooling、修正rectify、濾波filter,換句話說就是反池化,反激活,反卷積。

        由于不可能獲取標(biāo)簽數(shù)據(jù),因此反卷積網(wǎng)絡(luò)是一個(gè)無監(jiān)督的,不具備學(xué)習(xí)能力的,就像一個(gè)訓(xùn)練好的網(wǎng)絡(luò)的檢測器,或者說是一個(gè)復(fù)雜的映射函數(shù)。

        反池化Unpooling

        在上一篇文章《池化技術(shù)總結(jié)》中提到最大池化會記錄最大值的坐標(biāo),在上圖中就是switches,而反池化就只需要將最大值放到原位置,而其他位置的值并不知道,直接置零。如下圖所示。

        修正Rectification

        CNN使用ReLU確保feature map上的值都是正的,因此在反卷積中也使用ReLU。這里所謂Rectification其實(shí)就是讓unpooling后的值都是正的,換句話說就是使用ReLU。

        Filtering

        Filtering指的是反卷積,具體操作就是使用原網(wǎng)絡(luò)的卷積核的轉(zhuǎn)置作為卷積核,對Rectification后的輸出進(jìn)行卷積。

        注:在以上重構(gòu)過程中沒有使用對比歸一化操作。

        反卷積網(wǎng)絡(luò)特征可視化結(jié)果

        導(dǎo)向反向傳播

        在論文《Striving for Simplicity:The All Convolutional Net》中提出使用導(dǎo)向反向傳播(Guided-backpropagation),導(dǎo)向反向傳播與反卷積網(wǎng)絡(luò)的區(qū)別在于對ReLU的處理方式。在反卷積網(wǎng)絡(luò)中使用ReLU處理梯度,只回傳梯度大于0的位置,而在普通反向傳播中只回傳feature map中大于0的位置,在導(dǎo)向反向傳播中結(jié)合這兩者,只回傳輸入和梯度都大于0的位置,這相當(dāng)于在普通反向傳播的基礎(chǔ)上增加了來自更高層的額外的指導(dǎo)信號,這阻止了負(fù)梯度的反傳流動,梯度小于0的神經(jīng)元降低了正對應(yīng)更高層單元中我們想要可視化的區(qū)域的激活值。

        使用導(dǎo)向反向傳播與反卷積網(wǎng)絡(luò)的效果對比

        明顯使用導(dǎo)向反向傳播比反卷積網(wǎng)絡(luò)效果更好。

        總結(jié):分析反卷積網(wǎng)絡(luò)的對各層feature map可視化的結(jié)果可知,CNN中會學(xué)到圖像中的一些主要特征,如狗頭,鼻子眼睛,紋理,輪廓等內(nèi)容。但對特征圖可視化有個(gè)明顯的不足,即無法可視化圖像中哪些區(qū)域?qū)ψR別具體某個(gè)類別的作用,這個(gè)主要是使用CAM系列的方法,下文將進(jìn)行講解。

        二、卷積核可視化

        上面我們介紹了特征圖可視化方法,對于特征圖可視化的方法(或者說原理)比較容易理解,即把feature map從特征空間通過反卷積網(wǎng)絡(luò)映射回像素空間。

        那卷積核怎樣可視化呢,基于什么原理來可視化?卷積核的尺寸一般只有3x3, 5x5大小,如何可視化?下面將介紹這個(gè)兩個(gè)內(nèi)容。

        卷積核可視化的原理

        卷積核,在網(wǎng)絡(luò)中起到將圖像從像素空間映射到特征空間的作用,可認(rèn)為是一個(gè)映射函數(shù),像素空間中的值經(jīng)過卷積核后得到響應(yīng)值,在特征提取網(wǎng)絡(luò)中,基本都是使用最大池化來選擇最大響應(yīng)值進(jìn)入下一層繼續(xù)卷積,其余響應(yīng)值低的都進(jìn)入待定。也就是說,我們認(rèn)定只有響應(yīng)值大的才會對最終的識別任務(wù)起作用。

        根據(jù)這個(gè)思路,給定一個(gè)已經(jīng)訓(xùn)練好的網(wǎng)絡(luò),現(xiàn)在想要可視化某一層的某一個(gè)卷積核,我們隨機(jī)初始化生成一張圖(指的是對像素值隨機(jī)取值,不是數(shù)據(jù)集中隨機(jī)選一張圖),然后經(jīng)過前向傳播到該層,我們希望這個(gè)隨機(jī)生成的圖在經(jīng)過這一層卷積核時(shí),它的響應(yīng)值能盡可能的大,換句話說,響應(yīng)值比較大的圖像是這個(gè)卷積核比較認(rèn)可的,是與識別任務(wù)更相關(guān)的。然后不斷調(diào)整圖像像素值,直到響應(yīng)值足夠大,我們就可以認(rèn)為此時(shí)的圖像就是這個(gè)卷積核所認(rèn)可的,從而達(dá)到可視化該卷積核的目的。

        理解了它的原理后,它的實(shí)現(xiàn)方法就比較簡單了,設(shè)計(jì)一個(gè)損失函數(shù),即以經(jīng)過該層卷積核后的響應(yīng)值為目標(biāo)函數(shù),使用梯度上升,更新像素值,使響應(yīng)值最大。

        實(shí)現(xiàn)代碼

        Setup

        import numpy as npimport tensorflow as tffrom tensorflow import keras# The dimensions of our input imageimg_width = 180img_height = 180# Our target layer: we will visualize the filters from this layer.# See `model.summary()` for list of layer names, if you want to change this.layer_name = "conv3_block4_out"
        Build a feature extraction model
        # Build a ResNet50V2 model loaded with pre-trained ImageNet weightsmodel = keras.applications.ResNet50V2(weights="imagenet", include_top=False)# Set up a model that returns the activation values for our target layerlayer = model.get_layer(name=layer_name)feature_extractor = keras.Model(inputs=model.inputs, outputs=layer.output)
        Set up the gradient ascent process

        loss函數(shù)取最大化指定卷積核的響應(yīng)值的平均值,為了避免邊界的影響,邊界的響應(yīng)值不計(jì)。

        def compute_loss(input_image, filter_index):    activation = feature_extractor(input_image)    # We avoid border artifacts by only involving non-border pixels in the loss.    filter_activation = activation[:, 2:-2, 2:-2, filter_index]    return tf.reduce_mean(filter_activation)@tf.functiondef gradient_ascent_step(img, filter_index, learning_rate):    with tf.GradientTape() as tape:        tape.watch(img)        loss = compute_loss(img, filter_index)    # Compute gradients.    grads = tape.gradient(loss, img)    # Normalize gradients.    grads = tf.math.l2_normalize(grads)    img += learning_rate * grads    return loss, img
        Set up the end-to-end filter visualization loop
        def initialize_image():    # We start from a gray image with some random noise    img = tf.random.uniform((1, img_width, img_height, 3))    # ResNet50V2 expects inputs in the range [-1, +1].    # Here we scale our random inputs to [-0.125, +0.125]    return (img - 0.5) * 0.25
        def visualize_filter(filter_index): # We run gradient ascent for 20 steps iterations = 30 learning_rate = 10.0 img = initialize_image() for iteration in range(iterations): loss, img = gradient_ascent_step(img, filter_index, learning_rate)
        # Decode the resulting input image img = deprocess_image(img[0].numpy()) return loss, img
        def deprocess_image(img): # Normalize array: center on 0., ensure variance is 0.15 img -= img.mean() img /= img.std() + 1e-5 img *= 0.15
        # Center crop img = img[25:-25, 25:-25, :]
        # Clip to [0, 1] img += 0.5 img = np.clip(img, 0, 1)
        # Convert to RGB array img *= 255 img = np.clip(img, 0, 255).astype("uint8")????return?img

        可視化效果圖

        可視化vgg16卷積核

        總結(jié):本部分內(nèi)容介紹了一種可視化卷積核的方法,即通過生成指定卷積核響應(yīng)值盡可能大的圖像來達(dá)到可視化卷積核的目的,使用的方法是梯度上升。

        在不少論文的末尾都有可視化卷積核來分析提出的模型,該方法值得了解。

        三、類可視化

        前面我們介紹了兩種可視化方法,特征圖可視化和卷積核可視化,這兩種方法在論文中都比較常見,這兩種更多的是用于分析模型在某一層學(xué)習(xí)到的東西。在理解這兩種可視化方法,很容易理解圖像是如何經(jīng)過神經(jīng)網(wǎng)絡(luò)后得到識別分類。

        然而,上次我在知乎看到一個(gè)通過yolov3做跌倒檢測,希望加上人臉識別進(jìn)行多任務(wù)學(xué)習(xí)從而提高準(zhǔn)確率的提問。這明顯提問者并不理解神經(jīng)網(wǎng)絡(luò)是如何對這種帶有時(shí)間維度的視頻進(jìn)行分析從而實(shí)現(xiàn)行為識別,從本質(zhì)上來講,這其實(shí)是不理解神經(jīng)網(wǎng)絡(luò)具體是如何識別一個(gè)類的。因此,當(dāng)在這一點(diǎn)上理解錯(cuò)誤后,所進(jìn)行的模型選擇、方案設(shè)計(jì)和改進(jìn),就都是不合理的。

        (我在知乎上回答了這個(gè)問題正確的跌倒檢測思路應(yīng)該是什么,感興趣的可以去看看)

        因此,在下面的文字中,我們將介紹一種對于不同的類,如何知道模型根據(jù)哪些信息來識別的方法,即對類進(jìn)行可視化,通俗一點(diǎn)來說就是熱力圖。這個(gè)方法主要是CAM系列,目前有CAM, Grad-CAM, Grad-CAM++。

        CAM(Class Activation Map)

        如上圖所示,CAM的結(jié)構(gòu)由CNN特征提取網(wǎng)絡(luò),全局平均池化GAP,全連接層和Softmax組成。

        實(shí)現(xiàn)原理:一張圖片在經(jīng)過CNN特征提取網(wǎng)絡(luò)后得到feature maps, 再對每一個(gè)feature map進(jìn)行全局平均池化,變成一維向量,再經(jīng)過全連接層與softmax得到類的概率。

        假定在GAP前是n個(gè)通道,則經(jīng)過GAP后得到的是一個(gè)長度為1x n的向量,假定類別數(shù)為m,則全連接層的權(quán)值為一個(gè)n x m的張量。(注:這里先忽視batch-size)

        對于某一個(gè)類別C, 現(xiàn)在想要可視化這個(gè)模型對于識別類別C,原圖像的哪些區(qū)域起主要作用,換句話說模型是根據(jù)哪些信息得到該圖像就是類別C。

        做法是取出全連接層中得到類別C的概率的那一維權(quán)值,用W表示,即上圖的下半部分。然后對GAP前的feature map進(jìn)行加權(quán)求和,由于此時(shí)feature map不是原圖像大小,在加權(quán)求和后還需要進(jìn)行上采樣,即可得到Class Activation Map。

        用公式表示如下:(k表示通道,c表示類別,fk(x,y)表示feature map)

        效果圖:

        CAM的分析

        CAM有個(gè)很致命的缺陷,它的結(jié)構(gòu)是由CNN + GAP + FC + Softmax組成,也就是說如果想要可視化某個(gè)現(xiàn)有的模型,但大部分現(xiàn)有的模型沒有GAP這個(gè)操作,此時(shí)想要可視化便需要修改原模型結(jié)構(gòu),并重新訓(xùn)練,相當(dāng)麻煩,且如果模型很大,在修改后重新訓(xùn)練不一定能達(dá)到原效果,可視化也就沒有意義了。

        因此,針對這個(gè)缺陷,其后續(xù)有了改進(jìn)版Grad-CAM。

        Grad-CAM

        Grad-CAM的最大特點(diǎn)就是不再需要修改現(xiàn)有的模型結(jié)構(gòu)了,也不需要重新訓(xùn)練了,直接在原模型上即可可視化。

        原理:同樣是處理CNN特征提取網(wǎng)絡(luò)的最后一層feature maps。Grad-CAM對于想要可視化的類別C,使最后輸出的類別C的概率值通過反向傳播到最后一層feature maps,得到類別C對該feature maps的每個(gè)像素的梯度值,對每個(gè)像素的梯度值取全局平均池化,即可得到對feature maps的加權(quán)系數(shù)alpha,論文中提到這樣獲取的加權(quán)系數(shù)跟CAM中的系數(shù)幾乎是等價(jià)的。接下來對特征圖加權(quán)求和,使用ReLU進(jìn)行修正,再進(jìn)行上采樣。

        使用ReLU的原因是對于那些負(fù)值,可認(rèn)為與識別類別C無關(guān),這些負(fù)值可能是與其他類別有關(guān),而正值才是對識別C有正面影響的。

        用公式表示如下:

        Grad-CAM的結(jié)構(gòu)圖如上圖所示,對于Guided Backpropagation不了解的讀者,可看CNN可視化技術(shù)總結(jié)的第一篇文章。

        效果圖如下:

        Grad-CAM后續(xù)還有改進(jìn)版Grad-CAM++,其主要的改進(jìn)效果是定位更準(zhǔn)確,更適合同類多目標(biāo)的情況,所謂同類多目標(biāo)是指一張圖像中對于某個(gè)類出現(xiàn)多個(gè)目標(biāo),例如七八個(gè)人。

        改進(jìn)方法是對加權(quán)系數(shù)的獲取提出新的方法,該方法復(fù)雜到不忍直視。因此這里就不介紹了,感興趣的讀者可以閱讀該論文:

        CAM:?arxiv.org/pdf/1512.0415

        Grad-CAM:?arxiv.org/pdf/1610.0239

        Grad-CAM++:?arxiv.org/pdf/1710.1106

        四、可視化工具與項(xiàng)目

        前面介紹了可視化的三種方法--特征圖可視化,卷積核可視化,類可視化,這三種方法在很多提出新模型或新方法的論文中很常見,其主要作用是提高模型或者新方法的可信度,或者用來增加工作量,或者用來湊字?jǐn)?shù),還有一些作用是幫助理解模型針對某個(gè)具體任務(wù)是如何學(xué)習(xí),學(xué)到了哪些信息,哪些區(qū)域?qū)τ谧R別有影響等。

        本文將介紹一些可視化的項(xiàng)目,主要有CNN解釋器,特征圖、卷積核、類可視化的一些代碼和項(xiàng)目,結(jié)構(gòu)可視化工具,網(wǎng)絡(luò)結(jié)構(gòu)手動畫圖工具。

        1. CNN-Explainer

        這是一個(gè)中國博士發(fā)布的名叫CNN解釋器的在線交互可視化工具。主要對于那些初學(xué)深度學(xué)習(xí)的小白們 理解關(guān)于神經(jīng)網(wǎng)絡(luò)是如何工作很有幫助,如卷積過程,ReLU過程,平均池化過程,中間每一層的特征圖的樣子,都可以看到,相當(dāng)于給了一個(gè)顯微鏡,可以隨意對任意一層,任何一項(xiàng)操作的前后變化,觀察得清清楚楚。

        顯示卷積的過程中前后特征圖的變化,中間的操作。

        CNN是如何輸出預(yù)測的

        還可以在線上傳圖片,看到一張圖片在經(jīng)過每一層的卷積,池化,激活后的變化,最后輸出預(yù)測結(jié)果。

        項(xiàng)目鏈接:

        https://github.com/poloclub/cnn-explainer

        2. 一些可視化特征圖、卷積核、熱力圖的代碼。

        可視化特征圖

        https://github.com/waallf/Viusal-feature-map

        可視化卷積核

        https://keras.io/examples/vision/visualizing_what_convnets_learn/

        https://blog.keras.io/how-convolutional-neural-networks-see-the-world.html

        Grad-CAM

        https://github.com/ramprs/grad-cam

        熱力圖

        https://github.com/heuritech/convnets-keras

        下面這個(gè)項(xiàng)目是同時(shí)包含特征圖可視化,卷積核可視化和熱力圖的一個(gè)鏈接:

        https://github.com/raghakot/keras-vis

        3. 結(jié)構(gòu)可視化工具

        Netscope

        用于可視化模型結(jié)構(gòu)的在線工具,僅支持caffe的prototxt文件可視化。需要自己寫prototxt格式的文件。

        此圖來源于網(wǎng)絡(luò),侵刪

        項(xiàng)目地址:

        https://github.com/ethereon/netscope

        ConvNetDraw

        這個(gè)工具用兩個(gè)圖可直接說明,第一個(gè)是輸入,第二個(gè)是輸出

        這兩個(gè)圖來源于網(wǎng)絡(luò),侵刪

        項(xiàng)目地址:

        https://github.com/cbovar/ConvNetDraw

        PlotNeuralNet

        這個(gè)稍微麻煩一點(diǎn)點(diǎn),效果圖如下:

        項(xiàng)目地址:

        https://github.com/HarisIqbal88/PlotNeuralNet

        4. 網(wǎng)絡(luò)結(jié)構(gòu)手動畫圖工具

        很多新手會問的一個(gè)問題,論文中那些網(wǎng)絡(luò)結(jié)構(gòu)圖是如何畫的。

        這里解答一下,我所了解的主要是用PPT, VISIO。當(dāng)然也可以使用上面那幾個(gè)。

        再補(bǔ)充一個(gè)在線工具,NN-SVG

        項(xiàng)目地址:http://alexlenail.me/NN-SVG/

        總結(jié)

        這四篇文章基本介紹完了目前CNN可視化的一些方法,即特征圖可視化,卷積核可視化和類可視化,總結(jié)了一些可視化工具與項(xiàng)目,當(dāng)然不免也有個(gè)別遺漏的,日后若有一些比較重大突破的一些可視化工具出來,將繼續(xù)補(bǔ)充。

        對于可視化,其實(shí)還包括訓(xùn)練過程的可視化,如Loss值,精度等實(shí)時(shí)更新,這個(gè)比較簡單,就不在這個(gè)總結(jié)系列里說明了。

        代碼與可視化圖的參考鏈接:

        https://keras.io/examples/vision/visualizing_what_convnets_learn/

        https://blog.keras.io/how-convolutional-neural-networks-see-the-world.html


        參考論文:

        1.《Visualizing and Understanding Convolutional Networks》

        2.《Striving for Simplicity:The All Convolutional Net》

        3. Learning Deep Features for Discriminative Localization

        4.Grad-CAM: Why did you say that?Visual Explanations from Deep Networks via Gradient-based Localization

        5.Grad-cam++: Generalized gradient-based visual explanations for deep convolutional networks



        推薦閱讀


        增量推理:一種CNN加速的新思路

        2021-02-23

        綜述:輕量級CNN架構(gòu)設(shè)計(jì)

        2021-02-17

        擦除:提升 CNN 特征可視化的 3 種重要手段

        2021-02-16



        #?CV技術(shù)社群邀請函?#

        △長按添加極市小助手
        添加極市小助手微信(ID : cvmart2)

        備注:姓名-學(xué)校/公司-研究方向-城市(如:小極-北大-目標(biāo)檢測-深圳)


        即可申請加入極市目標(biāo)檢測/圖像分割/工業(yè)檢測/人臉/醫(yī)學(xué)影像/3D/SLAM/自動駕駛/超分辨率/姿態(tài)估計(jì)/ReID/GAN/圖像增強(qiáng)/OCR/視頻理解等技術(shù)交流群


        每月大咖直播分享、真實(shí)項(xiàng)目需求對接、求職內(nèi)推、算法競賽、干貨資訊匯總、與?10000+來自港科大、北大、清華、中科院、CMU、騰訊、百度等名校名企視覺開發(fā)者互動交流~


        △點(diǎn)擊卡片關(guān)注極市平臺,獲取最新CV干貨

        覺得有用麻煩給個(gè)在看啦~??
        瀏覽 46
        點(diǎn)贊
        評論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        評論
        圖片
        表情
        推薦
        點(diǎn)贊
        評論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            怡红院AV| 成年女人毛片 | 怡红院在线观看 | 午夜福利人妻 | 欧美1区 色偷偷超碰 | 久久久久久国产精品火龙果影视 | 插骚逼逼av | www.操逼视频 | 国内精品久久久久久99果冻传媒 | 韩国vip内部大尺度青草 |