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...