【Caffe的C++接口使用说明(一)】caffe_windows下的第一个测试程序学习教程
来源:互联网 发布:光大证券金阳光mac版 编辑:程序博客网 时间:2024/06/07 19:24
/****************************************************************************************************
文件说明: 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-leveldb2)mnist-test-leveldb3)将这两个文件夹直接复制到.\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 0
- 【Caffe的C++接口使用说明(一)】caffe_windows下的第一个测试程序学习教程
- 【Caffe的C++接口使用说明二)】caffe_windows下的C++接口的使用
- Caffe_Windows学习笔记(一)基于Win10 x64+VS2013+GPU加速+Python2.7+Matlab2016b环境下的Caffe配置
- caffe windows学习:第一个测试程序
- caffe windows学习:第一个测试程序
- windows下caffe运行我的第一个程序
- 第一个linux下的C程序
- linux下的第一个c程序
- Caffe for Python 官方教程(翻译) ----我的第一个caffe程序
- SDL2.0 学习笔记-1 windows下的第一个测试程序
- caffe_windows环境下的python配置
- 【Caffe的C++接口使用说明六)】caffe中分类接口C++源代码的再次解读以及测试文件的完善
- linux 环境下的第一个C/C++ 程序
- linux下C调用lua的第一个程序
- Linux下的第一个c程序~_~
- 《Hibernate学习笔记一》:第一个程序的搭建
- 《Hibernate学习笔记一》第一个程序的搭建
- Android NDK学习教程(一)--第一个NDK程序
- 利用MFC绘制Excel数据的波形
- 循环:念整数
- 【TED】The psychology of self-motivation--Scott Geller
- 模拟实现printf
- 装饰者模式
- 【Caffe的C++接口使用说明(一)】caffe_windows下的第一个测试程序学习教程
- #300. 【CTSC2017】吉夫特
- caffe学习笔记(八)——binaryproto 转 npy、mat文件
- C语言单向链表的实现
- 【VS插件】Image Watch插件
- 数组:井字棋
- 【脚本语言系列】关于Python网页服务Plone,你需要知道的事
- D3 force(力导向图)研究之二:如何布局超过十万个节点的图谱
- jQuery选择器总结