使用Python可視化卷積神經(jīng)網(wǎng)絡(luò)方法匯總
3. 基于梯度的方法3.1 顯著性圖正如我們在坦克的例子中所看到的,我們?nèi)绾尾拍苤牢覀兊哪P完P(guān)注哪個部分來獲得預(yù)測?為此,我們可以使用顯著性圖。使用顯著性圖的概念是非常直接的——我們計算輸出類別相對于輸入圖像的梯度,這可以告訴我們輸出類別值相對于輸入圖像像素的微小變化是如何變化的。梯度中的所有正值都告訴我們,對該像素的微小更改將增加輸出值,因此,將這些與圖像形狀相同的梯度可視化,應(yīng)該能提供一些直覺。直觀地,該方法突出了對輸出貢獻(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ī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ù)測時可視化模型所看到內(nèi)容的方法,使用倒數(shù)第二卷積層輸出,而不是使用相對于輸出的梯度,這樣做是為了利用存儲在倒數(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é)合一個例子來實現(xiàn)它。參考鏈接:https://www.a(chǎn)nalyticsvidhya.com/blog/2018/03/essentials-of-deep-learning-visualizing-convolutional-neural-networks/
☆ END ☆

請輸入評論內(nèi)容...
請輸入評論/評論長度6~500個字
最新活動更多
-
6月20日立即下載>> 【白皮書】精準(zhǔn)測量 安全高效——福祿克光伏行業(yè)解決方案
-
7月3日立即報名>> 【在線會議】英飛凌新一代智能照明方案賦能綠色建筑與工業(yè)互聯(lián)
-
7月22-29日立即報名>> 【線下論壇】第三屆安富利汽車生態(tài)圈峰會
-
7.30-8.1火熱報名中>> 全數(shù)會2025(第六屆)機(jī)器人及智能工廠展
-
7月31日免費預(yù)約>> OFweek 2025具身機(jī)器人動力電池技術(shù)應(yīng)用大會
-
免費參會立即報名>> 7月30日- 8月1日 2025全數(shù)會工業(yè)芯片與傳感儀表展
推薦專題
- 1 AI 眼鏡讓百萬 APP「集體失業(yè)」?
- 2 大廠紛紛入局,百度、阿里、字節(jié)搶奪Agent話語權(quán)
- 3 深度報告|中國AI產(chǎn)業(yè)正在崛起成全球力量,市場潛力和關(guān)鍵挑戰(zhàn)有哪些?
- 4 上海跑出80億超級獨角獸:獲上市公司戰(zhàn)投,干人形機(jī)器人
- 5 國家數(shù)據(jù)局局長劉烈宏調(diào)研格創(chuàng)東智
- 6 一文看懂視覺語言動作模型(VLA)及其應(yīng)用
- 7 下一代入口之戰(zhàn):大廠為何紛紛押注智能體?
- 8 百億AI芯片訂單,瘋狂傾銷中東?
- 9 Robotaxi新消息密集釋放,量產(chǎn)元年誰在領(lǐng)跑?
- 10 格斗大賽出圈!人形機(jī)器人致命短板曝光:頭腦過于簡單