使用Python可視化卷積神經(jīng)網(wǎng)絡(luò)方法匯總
3. 基于梯度的方法3.1 顯著性圖正如我們?cè)谔箍说睦又兴吹降,我們(nèi)绾尾拍苤牢覀兊哪P完P(guān)注哪個(gè)部分來(lái)獲得預(yù)測(cè)?為此,我們可以使用顯著性圖。使用顯著性圖的概念是非常直接的——我們計(jì)算輸出類別相對(duì)于輸入圖像的梯度,這可以告訴我們輸出類別值相對(duì)于輸入圖像像素的微小變化是如何變化的。梯度中的所有正值都告訴我們,對(duì)該像素的微小更改將增加輸出值,因此,將這些與圖像形狀相同的梯度可視化,應(yīng)該能提供一些直覺(jué)。直觀地,該方法突出了對(duì)輸出貢獻(xiàn)最大的顯著圖像區(qū)域。class_idx = 0indices = np.where(val_y[:, class_idx] == 1.)[0]
# 從這里選取一些隨機(jī)輸入。idx = indices[0]
# 讓sanity檢查選中的圖像。from matplotlib import pyplot as plt%matplotlib inlineplt.rcParams['figure.figsize'] = (18, 6)
plt.imshow(val_x[idx][..., 0])
from vis.visualization import visualize_saliencyfrom vis.utils import utilsfrom keras import activations
# 按名稱搜索圖層索引# 或者,我們可以將其指定為-1,因?yàn)樗鼘?duì)應(yīng)于最后一層。layer_idx = utils.find_layer_idx(model, 'preds')
# 用線性層替換softmaxmodel.layers[layer_idx].a(chǎn)ctivation = activations.linearmodel = utils.a(chǎn)pply_modifications(model)
grads = visualize_saliency(model, layer_idx, filter_indices=class_idx, seed_input=val_x[idx])# 可視化為熱圖。plt.imshow(grads, cmap='jet')
# 線性層。for class_idx in np.a(chǎn)range(10): indices = np.where(val_y[:, class_idx] == 1.)[0] idx = indices[0]
f, ax = plt.subplots(1, 4) ax[0].imshow(val_x[idx][..., 0])
for i, modifier in enumerate([None, 'guided', 'relu']): grads = visualize_saliency(model, layer_idx, filter_indices=class_idx, seed_input=val_x[idx], backprop_modifier=modifier) if modifier is None: modifier = 'vanilla' ax[i+1].set_title(modifier) ax[i+1].imshow(grads, cmap='jet')
3.2 基于梯度的類激活圖類激活圖是另一種在進(jìn)行預(yù)測(cè)時(shí)可視化模型所看到內(nèi)容的方法,使用倒數(shù)第二卷積層輸出,而不是使用相對(duì)于輸出的梯度,這樣做是為了利用存儲(chǔ)在倒數(shù)第二層的空間信息。from vis.visualization import visualize_cam
# 線性層。for class_idx in np.a(chǎn)range(10): indices = np.where(val_y[:, class_idx] == 1.)[0] idx = indices[0]
f, ax = plt.subplots(1, 4) ax[0].imshow(val_x[idx][..., 0])
for i, modifier in enumerate([None, 'guided', 'relu']): grads = visualize_cam(model, layer_idx, filter_indices=class_idx, seed_input=val_x[idx], backprop_modifier=modifier) if modifier is None: modifier = 'vanilla' ax[i+1].set_title(modifier) ax[i+1].imshow(grads, cmap='jet')
結(jié)尾在本文中,我們介紹了如何可視化CNN模型,以及為什么要可視化,我們結(jié)合一個(gè)例子來(lái)實(shí)現(xiàn)它。參考鏈接:https://www.a(chǎn)nalyticsvidhya.com/blog/2018/03/essentials-of-deep-learning-visualizing-convolutional-neural-networks/
☆ END ☆

發(fā)表評(píng)論
請(qǐng)輸入評(píng)論內(nèi)容...
請(qǐng)輸入評(píng)論/評(píng)論長(zhǎng)度6~500個(gè)字
圖片新聞
-
機(jī)器人奧運(yùn)會(huì)戰(zhàn)報(bào):宇樹(shù)機(jī)器人摘下首金,天工Ultra搶走首位“百米飛人”
-
存儲(chǔ)圈掐架!江波龍起訴佰維,索賠121萬(wàn)
-
長(zhǎng)安汽車母公司突然更名:從“中國(guó)長(zhǎng)安”到“辰致科技”
-
豆包前負(fù)責(zé)人喬木出軌BP后續(xù):均被辭退
-
字節(jié)AI Lab負(fù)責(zé)人李航卸任后返聘,Seed進(jìn)入調(diào)整期
-
員工持股爆雷?廣汽埃安緊急回應(yīng)
-
中國(guó)“智造”背后的「關(guān)鍵力量」
-
小米汽車研發(fā)中心重磅落地,寶馬家門口“搶人”
最新活動(dòng)更多
-
即日-9.1立即下載>> 【限時(shí)下載】ADI中國(guó)三十周年感恩回饋助力企業(yè)升級(jí)!
-
即日-9.16點(diǎn)擊進(jìn)入 >> 【限時(shí)福利】TE 2025國(guó)際物聯(lián)網(wǎng)展·深圳站
-
10月23日立即報(bào)名>> Works With 開(kāi)發(fā)者大會(huì)深圳站
-
10月24日立即參評(píng)>> 【評(píng)選】維科杯·OFweek 2025(第十屆)物聯(lián)網(wǎng)行業(yè)年度評(píng)選
-
11月27日立即報(bào)名>> 【工程師系列】汽車電子技術(shù)在線大會(huì)
-
12月18日立即報(bào)名>> 【線下會(huì)議】OFweek 2025(第十屆)物聯(lián)網(wǎng)產(chǎn)業(yè)大會(huì)
推薦專題
- 1 阿里首位程序員,“掃地僧”多隆已離職
- 2 先進(jìn)算力新選擇 | 2025華為算力場(chǎng)景發(fā)布會(huì)暨北京xPN伙伴大會(huì)成功舉辦
- 3 宇樹(shù)機(jī)器人撞人事件的深度剖析:六維力傳感器如何成為人機(jī)安全的關(guān)鍵屏障
- 4 清華跑出具身智能獨(dú)角獸:給機(jī)器人安上眼睛和大腦,融資近20億
- 5 特朗普要求英特爾首位華人 CEO 辭職
- 6 踢館大廠和微軟,剖析WPS靈犀的AI實(shí)用主義
- 7 騰訊 Q2 財(cái)報(bào)亮眼:AI 已成第二增長(zhǎng)曲線
- 8 谷歌吹響AI沖鋒號(hào),AI還有哪些機(jī)會(huì)
- 9 蘋(píng)果把身家押在Siri上:一場(chǎng)輸不起的自我革命
- 10 共探合作新機(jī)遇!江門市新會(huì)區(qū)(深圳)“AI + 機(jī)器人” 產(chǎn)業(yè)對(duì)接會(huì)成功舉辦