C++ 调用 Caffe 训练好的网络(样例:LeNet)
1. 说明
我们用Caffe可以很方便的训练我们的网络,但是当真正的拿去用到C++之类的工程的时候就不知道怎么做了.于是我打算介绍下C++ 如何调用 Caffe 训练好的网络和API .
前期准备: g++ ( 支持 C++11 版本 ) cmake opencv ,还有Caffe ( 我在这里就不介绍Caffe 的安装使用了)
2. 一些 caffe API 的介绍
官方文档: http://caffe.berkeleyvision.org/doxygen/index.html
2.1 caffe::net
这个类是我们调用Caffe API 的核心.它提供很方便的使用方式,只要我们提供正确 caffemodel 和 net(网络结构) ,就可以自动帮我们生成好用于预测的网络.
2.2 caffe::Caffe::set_mode();
这个是用于设置,我们使用CPU进行运算还是GPU进行运行.默认情况下caffe是使用CPU运行的.
使用方式如下
using namespace caffe;
Caffe::set_mode(Caffe::CPU); // 设置为CPU模式
Caffe::set_mode(Caffe::GPU); // 设置为GPU模式
2.3 caffe::Blob
这个是caffe 放置 网络模型运行时所有数据的class.我们的网络的输入和输出也是使用这个class管理.
3. 代码
main.cpp
#include <iostream>
#include <opencv2/opencv.hpp>