今天,我們來看對乙個訓練好的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資料...