【Caffe的C++接口使用说明(一)】caffe_windows下的第一个测试程序学习教程

/****************************************************************************************************
文件说明:
         caffe_windows下的第一个测试程序学习教程(一)
开发环境: 
         win10+caffe+Opencv2.4.8+CPU
时间地点:
         陕西师范大学 文津楼 2017.5.29
具体操作:
         1)下载数据
		      程序本身不带测试数据,需要我们去下载,测试数据的格式为leveldb数据库格式(一种数据库文件)。
		   您可以直接双击"F:\\caffe\\caffe-windows\\examples\\mnistget_mnist_leveldb.bat"这个windows环
		   境下的批处理脚本文件自动下载数据,但是一般都不能成功下载。因此,您可以直接到MNIST数据集的官
		   网"http://yann.lecun.com/exdb/mnist/"直接下载文件,文件解压后,得到两个文件夹:
		        1)mnist-train-leveldb
				2)mnist-test-leveldb
				3)将这两个文件夹直接复制到.\examples\mnist\目录下
		 2)修改配置文件
		      修改lenet_solver.prototxt文件,使用Notepad++软件打开这个文件,修改最后一行:
			       solver_mode: GPU------------------>solver_mode: CPU
         3)运行.\examples\mnist\文件夹下的脚本文件"train_lenet.bat",这样就开始训练MNIST的数据识别模型了
		 4)运行时,有个错误,缺少libgfortran-3.dll文件,随便在网上下一个放在F:\caffe\caffe-windows\bin文
		      件夹下就可以了
train_lenet.bat文件的解读:
		 copy ..\\..\\bin\\MainCaller.exe ..\\..\\bin\\train_net.exe
		 SET GLOG_logtostderr=1
		 "../../bin/train_net.exe" lenet_solver.prototxt
		 pause
		 1)这个脚本文件其实很简单,只有四行:
		       第一行:将caffe安装文件根目录下的bin文件夹里面的MainCaller.exe复制一份,并将其重命名为
			          train_net.exe
			   第二行:设置glog日志。glog是Goole出的一个C++轻量级的日志库。
			   第三行:运行文件train_net.exe,并且给这个exe文件传递一个参数lenet_solver.prototxt
			   第四行:测试完毕后,暂停。
		 2)MainCaller.exe是整个程序的入口,由它来调用其他的测试。我们打开对应的MainCaller.cpp文件(具体
		       在.\examples\mnist\文件夹下),我们发现,这个文件只有一行代码。
			   #include "../../tools/train_net.cpp"
			   即使去调用train_net.cpp文件,打开tools下的train_net.cpp文件,熟悉的main就来了:
*****************************************************************************************************/
/*****************************************************************************************************
程序说明:
        1)这是一个简单的脚本,允许人们快速地训练一个网络,其参数由文本格式指定
		2)This is a simple script that allows one to quickly train a network whose parameters are 
		  specified by text format protocol buffers.
使用方法:
        train_net net_proto_file solver_proto_file [resume_point_file]
*****************************************************************************************************/
#include <cuda_runtime.h>                    //【1】cuda运行时的头文件
#include <iostream>                          //【2】C++的库文件
#include <cstring>
#include "caffe/caffe.hpp"                   //【3】caffe的头文件

using namespace caffe;                       //【4】包含caffe的命名空间

int main(int argc, char** argv) 
{
  ::google::InitGoogleLogging(argv[0]);      //【1】用第一个参数来初始化日志
  ::google::SetLogDestination(0, "../tmp/"); //【2】将参数放到caffe根目录下的../tmp/文件夹下
                                             //【3】例如我的F:\caffe\caffe-windows\tmp
  if (argc < 2 || argc > 3) 
  {
    LOG(ERROR) << "Usage: train_net solver_proto_file [resume_point_file]";
    return 1;
  }
  SolverParameter solver_param;              //【4】创建测试参数对象
                                             //【5】读取具体的参数配置
  ReadProtoFromTextFileOrDie(argv[1], &solver_param);
  LOG(INFO) << "Starting Optimization";      //【6】打印日志信息
  SGDSolver<float> solver(solver_param);     //【7】开始优化
  if (argc == 3)                             //【8】根据调用时,是否带第三个参数,进行不同的测试
  {
    LOG(INFO) << "Resuming from " << argv[2];
    solver.Solve(argv[2]);
  } 
  else 
  {
    solver.Solve();                           
  }
  LOG(INFO) << "Optimization Done.";         //【9】优化结束,打印日志信息

  return 0;
}





  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值