怎么简化caffe(一)
来源:互联网 发布:家居网络市场调研目标 编辑:程序博客网 时间:2024/04/30 23:00
前言:
提到深度学习,估计没人不知道caffe,是的,我们称之为coffee,相传当时写caffe框架时候,作者喜欢咖啡,因此,把他完成的深度学习命名为“caffe”,当然,这只是一个调侃。今天我们姑且不去谈论caffe怎么去学习,假设在看此文之前,您已经对caffe有一定的了解,至少你用过caffe去训练神经网络,不管是CNN还是RNN,说到底,这仅仅是一个深度学习平台,要了解深度学习,还是需要去深入点理论知识,要不然就会像我一样,只是一个搬运工,没有创新哈(这是实话)。言归正传,本文主要是想介绍一下如何去简化caffe代码,本人在使用caffe过程中的一点点笔记。
前提:
你已经用caffe训练好模型,并且已经在用这个框架去测试你的模型了。
为什么要简化:
使用caffe去测试,通常来说会把你的模型,网络层的连接情况,参数都打印出来,ok,姑且不说保密性问题,就是那么一大串的输出让你有点受不了,所以,本文将要介绍怎么屏蔽输出,同时也和大家聊聊怎么去掉训练模块中的hdf5模块,因为我们在测试应用中一般不会用hdf5模块代码。
正文:
(为了方便编译,我们全文在CPU_ONLY的模式下进行讲解)在caffe里,输出模块用的是LOG.
最简单的屏蔽方法:
先运行一遍初始化代码,找到输出的信息,如后在代码里面查找输出的信息,对应的屏蔽就行了。
其中需要大量注释的文件是net.cpp,这个文件是包含了网络初始化是后参数的读取与输出,其中主要的屏蔽的函数是“LOG_IF”:
比如:
这段被注释掉的代码就是输出网络中的参数名称,我们不需要其输出,因此把它屏蔽了。
其他的输出类似,另外在solver.cpp中有部分在测试中不要的输出,也可以将其注释。
温馨提示:
尽量不要注释错误提示信息,要不然,在模型测试中会很恼火的。
如何去掉hdf5模块:
为什么要去去除hdf5模块,1)要求的lib与dll比较多,在实际应用中,我们尽量精简,去掉hdf5会显得少了很多文件(虽然大小不大,但这一堆,看起来不舒服)哈哈。2)hdf5我们在测试中不用用到。
去除方法:
1)把工程中所有与HDF5相关的文件移除(.h,.cpp,.hpp)
2)把文件中包含HDF5相关的头文件,cpp文件注释
3)把与hdf5相关的函数注释,或者在函数体内设置为空
ok,做到此,不要忘了去工程设置中”连接器–>输入“把相应的lib文件去除
注释的部分代码(sgd_solvers.cpp)比如:
感谢大家阅读!
- 怎么简化caffe(一)
- 简化Caffe
- 简化条件表达式(一)
- 简化函数调用(一)
- caffe学习(一)
- Caffe解读(一)
- caffe 学习笔记(一)
- caffe源码串联(一)
- caffe学习笔记(一)
- Caffe学习总结(一)
- caffe 命令系列(一)
- 俺也写个blog--caffe(一)
- Caffe源码解读(一):caffe.proto(上)
- Caffe学习(一)Caffe+ubuntu14.04+Cuda8.0安装
- Caffe学习总结(一)——初识caffe
- caffe学习笔记(一)——caffe环境安装
- Caffe学习笔记(一):Caffe架构及其模型解析
- 【caffe】VS2015下caffe配置(GPU版)——【caffe学习一】
- oracle-where,group by,having order by 详细使用方法
- HTML常用标签属性(一)
- 集合框架_集合的遍历之迭代器遍历
- 纯CSS代码导航栏渐变下拉菜单
- EasyUI的下载与使用
- 怎么简化caffe(一)
- oracle10g监听
- 豆腐干豆腐干
- qqqqq
- sqlplus常用命令
- oracle-日常笔记
- 怎样写代码
- ”戏“说java—异常及异常处理概述
- HBuilder开发之路上的坑儿