caffe練習例項(3) 使用訓練好的模型

2021-07-25 07:39:27 字數 1905 閱讀 3398

input:

"data"

input_shape

layer

#include "opencv2/dnn.hpp"

#include "opencv2/imgproc.hpp"

#include "opencv2/highgui.hpp"

using

namespace cv;

using

namespace cv::dnn;

#include

#include

#include

using

namespace

std;

/* find best class for the blob (i. e. class with maximal probability) */

void getmaxclass(dnn::blob &probblob, int *classid, double *classprob)

int main(int argc,char* argv)

//! [initialize network] 通過介面建立和初始化網路

net net;

importer->populatenet(net);

importer.release();

//! [prepare blob] 讀取一張並轉換到blob資料儲存

mat img = imread(imagefile,0); // "0" for 1 channel, mnist accepts 1 channel

if (img.empty())

resize(img, img, size(28, 28)); //mnist accepts only 28x28 rgb-images

dnn::blob inputblob = cv::dnn::blob(img); //convert mat to dnn::blob batch of images

//! [set input blob] 將blob輸入到網路

net.setblob(".data", inputblob); //set the network input

//! [make forward pass] 進行前向傳播

net.forward(); //compute output

//! [gather output] 獲取概率值

dnn::blob prob = net.getblob("prob"); // gather output of "prob" layer

int classid;

double classprob;

getmaxclass(prob, &classid, &classprob);//find the best class

//! [print results] 輸出結果

std::cout

<< "best class: #"

<< classid << "'"

<< std::endl;

std::cout

<< "probability: "

<< classprob * 100

<< "%"

<< std::endl;

return

0;}

這裡給在自學caffe的同學乙個建議,相比於自學,我覺得有個老師帶領你去學更加有動力,效率會更高。所以我學caffe和opencv都是在練數成金上報課程學習的,建議有需要的可以去報一下,然後報名的時候輸入我的優惠碼,可以有一定的優惠哦!!!

我的優惠碼:je46

使用caffe訓練好的模型測試單張手寫數字

使用caffe訓練好的模型測試單張手寫數字 初次學習caffe的時候都會按照網上的教程,對caffe經典案例手寫字型識別進行訓練一下,很滿意,訓練完後可以獲得99 的準確率,而且可以獲得乙個訓練好的lenet iter 10000.caffemodel這麼乙個模型。很多人會有困惑,有這麼乙個模型,我...

使用caffe訓練好的模型進行分類 官網教程

coding utf 8 import numpy as np import matplotlib.pyplot as plt matplotlib inline import sys reload sys sys.setdefaultencoding utf8 設定預設顯示引數 plt.rcpar...

測試乙個訓練好的caffe模型

在學習caffe的過程中,訓練了出了模型出來,出了當時的準確率和loss值,並沒有看到給定輸入看到真正的輸出,這個時候需要測試一下訓練出來的模型,實際檢視一下效果,其中用到的配置檔案和網路模型在caffe的目錄下都有,自己測試自己的模型時需要修改為自己的 prototxt和 caffemodel u...