1

任何人請告訴我如何可視化每個CNN圖層的學習過濾器? 以下答案告訴我如何僅將第一個CNN圖層的學習過濾器可視化,但不能看見其他CNN圖層。可視化每個CNN圖層的學習過濾器

1)你可以恢復過濾器,並使用Matlab的函數顯示它們爲圖像。例如從http://www.vlfeat.org/matconvnet/pretrained/加載預訓練後的淨額:

imshow(net.layers{1}.filters(:, :, 3, 1), []) ; 

2)您可能會發現VLFeat功能vl_imarraysc顯示幾個過濾器非常有用。 http://www.vlfeat.org/matlab/vl_imarraysc.html

+1

第一層有1(灰度)或3(顏色)通道。其他層有更多的通道(例如64,128,512)。如果您的頻道超過3個,則不清楚如何同時觀看頻道。您可以一次查看一個通道,例如:net.layers {2} .filters(:,:,21,1),就像您可視化第一個圖層過濾器一樣。 讓我知道 – DataHungry

+0

@DataHungry我看過很多論文,他們在其中展示了不同的功能。他們是否顯示一個頻道? – Addee

回答

2

用於可視化中間層中的過濾器。有幾種技術:(1)一次顯示一個或三個通道爲灰度或RGB。這並不是很有用,因爲他們過濾ResNet和VGG小3x3。

(2)關閉其他單位。將本機僅背投到輸入空間。你可以看到一個反映這個單位關心的模式。有許多論文使用類似的技術。例如,Zeiler,Matthew D.和Rob Fergus。 「可視化和理解卷積網絡。」歐洲計算機視覺會議。

(3)找到最大程度地激活這個單元的輸入補丁,看看它們是什麼。

+0

感謝您提及這些技術。是否實施了這些技術的代碼? – Addee

+0

@Addee我不會立即知道有實現。他們並不難實施。以(2)爲例,你可以簡單地做我所描述的:關掉其他單位。僅向輸入空間返回一個感興趣的單位(即輸入圖像)。你會看到一些模式。順便說一句,它有興趣看到一些這樣的可視化,如果你可以發佈他們的地方。 – DataHungry