caffe之網路權重視覺化(C 實現)

2021-07-31 15:06:17 字數 1181 閱讀 7677

今天,我們來看對乙個訓練好的model,用c++進行model的網路權值的視覺化,比如看看網路中的第乙個卷積層conv1、第乙個卷積層pool1到底學到的是什麼特徵。

不失一般性,我們借用caffe中已經訓練好的模型caffenet(2023年的alexnet的修改版),對該model進行視覺化

// file: test.cpp
#include //為了能正常編譯,需要引入caffe的標頭檔案

#include //這三行是為了引用opencv

#include #include #include #include #include //使用c++智慧型指標,必須包含該目錄

#include #include #include

using namespace caffe;  // nolint(build/namespaces)

using namespace cv;

using namespace std;

int main()

//對最終顯示的大尺寸,進行逐個畫素賦值

int kk=0; //此時在畫第kk個卷積核

for(int y=0;y=num)

continue;

mat roi=img1(rect(x,y,width,height));

for(int i=0;idata_at(kk,k,i,j);

roi.at(i,j)[k]=(value-minvalue)/(maxvalue-minvalue)*255;   //歸一化到0~255

} }

}++kk;

}}resize(img1,img1,size(500,500)); //將顯示的大圖,調整為500*500尺寸

imshow("conv1",img1); //顯示

此時,第乙個卷積層的96個權重圖如上所示,可以看出,這個跟用python或者matlab介面視覺化的權重是一樣的。

Caffe網路視覺化

最近在學習caffe,但是作為曾經的windows深度使用者,還是比較習慣視覺化的介面。然而,caffe當然是在linux os x系統下更好啦,因為一般還是寫script在命令列裡面玩的。所以這樣就不直觀咯,為了能直觀地看清楚網路結構,而不是看prototxt腦補 視覺化就很重要了。幸好,開發ca...

Caffe視覺化之VisualDL

visual dl是由 paddlepaddle 和 echarts 合作推出的一款深度學習視覺化工具,其能夠視覺化scalar 引數分布 模型結構 影象等。底層採用c 編寫,上層sdk以python為主,也可以使用c 整合到其它平台。本文介紹其最簡單的scalar的用法,用於展示訓練測試的誤差趨勢...

神經網路 權重視覺化

深度學習已經應用在各種不同的領域,並且都取得了不錯的效果,但是在很多情況下,深度學習網路被我們看做乙個黑匣子,我們不知道通過訓練,我們的網路到底學習到了什麼。今天給大家分享乙個簡單的權重視覺化的方法,在我們訓練完網路之後,可以通過權重視覺化,直觀的理解網路到底學習到了什麼。本次實驗基於mnist資料...