国产无码免费,人妻口爆,国产V在线,99中文精品7,国产成人无码AA精品一,制度丝袜诱惑av,久久99免费麻辣视频,蜜臀久久99精品久久久久久酒店
        訂閱
        糾錯(cuò)
        加入自媒體

        一文了解CNN可視化技術(shù)總結(jié)之卷積核可視化

        導(dǎo)言:

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

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

        歡迎關(guān)注公眾號(hào) CV技術(shù)指南 ,專(zhuān)注于計(jì)算機(jī)視覺(jué)的技術(shù)總結(jié)、最新技術(shù)跟蹤、經(jīng)典論文解讀。

        卷積核可視化的原理

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

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

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

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

        Setup

        import numpy as np import tensorflow as tf from tensorflow import keras # The dimensions of our input image img_width = 180 img_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 weights model = keras.a(chǎn)pplications.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.function def 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).a(chǎn)stype("uint8")     return img

        可視化效果圖

        可視化vgg16卷積核

        CNN可視化技術(shù)總結(jié)(二)--卷積核可視化

        CNN可視化技術(shù)總結(jié)(二)--卷積核可視化

        CNN可視化技術(shù)總結(jié)(二)--卷積核可視化

        CNN可視化技術(shù)總結(jié)(二)--卷積核可視化

        CNN可視化技術(shù)總結(jié)(二)--卷積核可視化

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

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

           下一篇我們將介紹最常用的可視化方法--CAM系列,其作用是給出圖像中對(duì)類(lèi)別識(shí)別起作用的區(qū)域的熱力圖。

        image.png

        本文來(lái)源于公眾號(hào) CV技術(shù)指南 的技術(shù)總結(jié)系列。

        歡迎關(guān)注公眾號(hào) CV技術(shù)指南 ,專(zhuān)注于計(jì)算機(jī)視覺(jué)的技術(shù)總結(jié)、最新技術(shù)跟蹤、經(jīng)典論文解讀。

        聲明: 本文由入駐維科號(hào)的作者撰寫(xiě),觀點(diǎn)僅代表作者本人,不代表OFweek立場(chǎng)。如有侵權(quán)或其他問(wèn)題,請(qǐng)聯(lián)系舉報(bào)。

        發(fā)表評(píng)論

        0條評(píng)論,0人參與

        請(qǐng)輸入評(píng)論內(nèi)容...

        請(qǐng)輸入評(píng)論/評(píng)論長(zhǎng)度6~500個(gè)字

        您提交的評(píng)論過(guò)于頻繁,請(qǐng)輸入驗(yàn)證碼繼續(xù)

        • 看不清,點(diǎn)擊換一張  刷新

        暫無(wú)評(píng)論

        暫無(wú)評(píng)論

          人工智能 獵頭職位 更多
          掃碼關(guān)注公眾號(hào)
          OFweek人工智能網(wǎng)
          獲取更多精彩內(nèi)容
          文章糾錯(cuò)
          x
          *文字標(biāo)題:
          *糾錯(cuò)內(nèi)容:
          聯(lián)系郵箱:
          *驗(yàn) 證 碼:

          粵公網(wǎng)安備 44030502002758號(hào)

          主站蜘蛛池模板: 91视频在线观看18| 会泽县| av无码在线观看| 福利姬白浆AV导航| 天天操天天干视频| 超碰福利导航| 甘肃省| www.911国产| 蓬安县| jizzjizz| 狠狠干奇米| 亚洲成a人片网站| 亚洲天堂中文字幕| www.jizzjizz| 91中文视频| 亚洲综合成人网| 揭阳市| 久久久精品一区| 亚洲国产精品成人网站| 51国产在线| 日本成人有码| 97人妻在线| 天堂无码在线| 洋洋AV| 五台县| 曰批免费40分钟免费观看软件 | 亚洲久草网| 双牌县| 一本色道久久综合无码人妻软件| 国产精品国产伦子伦露看| 得荣县| 国产精品69毛片高清亚洲 | 国产女人18毛片水真多18| 原阳县| 日韩无毛| 宜宾市| 丝袜无码| 精品人妻无码一区二区三区四川人| 色二区| 98人妻| 国产?熟女|