
caffe
文章平均质量分 78
keep_forward
谢谢大家关注
展开
-
linux 代码封装成静态库和动态库使用(待续)
问题是这样的,自己的代码实现了一个数据分类的功能,如何把这部分代码完全打包成动态库和头文件,提供API给别人调用呢? 如果没有使用其它的依赖库或者其它开源代码,那么可以直接按照gcc编译器生成和使用静态/动态库的方式。可以参考博客: https://blog.csdn.net/arackethis/article/details/43340065 按照这篇博客里面的操作,基本可以完成自己生成静态库...原创 2018-04-09 19:07:08 · 3137 阅读 · 0 评论 -
caffe 查看运行时间
再caffe中可以通过time命令来查看整体的运行时间命令如下:-Bash 代码1./build/tools/caffe time \2 --model=examples/cifar10/cifar10_full_sigmoid_train_test_bn.prototxt \3 -iterations 1000...原创 2018-04-19 19:51:50 · 2332 阅读 · 0 评论 -
caffe CPU模式下训练速度很慢
前面提到了利用caffe训练模型时,只用单个CPU核的问题,通过openblas的方式解决了,但即使多个核用上了,但速度还是超级慢。就目前使用的网络而言,1min只能跑30 iter(1个iter 128个样本),即30*128 = 3840 样本/min, 为什么如此之慢呢?是不是代码出了问题,或者哪里的设置不对?尝试和lenet进行对比,利用8核CPU根据lenet训练mnist,大概8min...原创 2018-04-19 19:50:25 · 2791 阅读 · 0 评论 -
caffe在纯CPU模式下,使用多核运行
偶然发现一个问题,caffe在训练时,如果是只在cpu模式下,超级慢,看了一下,原因在于程序只用了一个核进行训练,因此速度超级慢如何解决这个问题呢?需要在编译caffe的时候指定使用openblas,并且需要在使用时指定使用的核数,具体操作如下1、首先安装openblas-Bash 代码1sudo apt-get install -y libopenblas-dev2、修改caffe目录下的Mak...原创 2018-04-19 19:48:52 · 3971 阅读 · 0 评论 -
caffe隐藏网络结构的定义,prototxt文件(待续)
在caffe中,在网络训练和网络使用的过程中,都会涉及到加载网络结构的问题,即caffe中定义的prototxt文件。但该文件包括了几乎所有的网络信息,能否做到隐藏该文件呢?能够想到的有两种方式,1、加密该文件,使用时再解密该文件2、将网络结构使用c++代码实现其中方式2没有做太多的研究,应该比较麻烦。那么加密解密的方式如何实现呢?采用合适的加密算法,解密后变成string,将string解析,变...原创 2018-04-19 19:44:16 · 2296 阅读 · 7 评论 -
caffe部署模型,在无caffe环境的机器上运行
训练好caffe模型后,通过加载deploy.prototxt文件和caffemodel,可以执行模型的推理过程,通过make编译后,该推理过程的cpp代码会被编译成可执行文件(.bin文件),通过在caffe目录下,调用./build/xxxx 可以运行该bin文件。但如何才能在其它机器上运行该可执行文件呢?如果直接拷贝该文件到其它机器上,再执行,则会提醒缺少各种.so动态库这里可以通过一一添加...原创 2018-04-18 19:15:28 · 3015 阅读 · 1 评论 -
caffe修改prototxt文件
caffe中的.prototxt文件用于定义网络结构,定义输入输出层,定义损失函数层等。prototxt文件是google的protocol buffer的数据结构。一般用定义好网络结构后,在实际使用时不会再调整,因此也不需要修改prototxt文件。但某些情况下,比如需要在线训练,而在线训练时,类别数会所有变化(可能是100分类,也可能是120分类),那么如何来完成这项工作呢?主要思路是1、修改...原创 2018-04-18 19:14:46 · 1273 阅读 · 0 评论 -
caffe以C++方式部署
caffe写的模型,训练好之后,如果需要做预测,那么可以参考官网上的教程https://github.com/BVLC/caffe/wiki/Using-a-Trained-Network:-Deploy但调用模型和网络结构的时候是用python的形式,非常的简单和简洁,如果要用C++来完成调用则比较麻烦。可以参考http://caffe.berkeleyvision.org/gathered/e...原创 2018-04-18 19:12:53 · 3289 阅读 · 0 评论 -
caffe中的loss值,训练loss比测试loss更大,为什么?
在caffe中,训练的时候,默认会打印出测试的loss值和训练的loss值,比如下图第一个loss值0.380612是指模型在测试阶段,但是在训练集上的loss值,第二个loss值0.416171是指模型在测试阶段,在测试集上的loss值第三个loss值是训练阶段打印出的loss值但是这里比较奇怪的是为什么训练阶段的loss最大?而且为什么这个loss值和测试阶段在测试集上的loss值不一样大?初...原创 2018-04-18 19:11:48 · 5658 阅读 · 0 评论 -
caffe中如何打印/输出总loss,包括loss和正则项(待完成)
并没有找到合适的方案,目前来看,需要修改源码,但是咋修改源码,还没有搞定。并没有找到合适的方案,目前来看,需要修改源码,但是咋修改源码,还没有搞定。并没有找到合适的方案,目前来看,需要修改源码,但是咋修改源码,还没有搞定。...原创 2018-04-18 19:10:59 · 1112 阅读 · 0 评论 -
caffe在窗口上不打印log信息
利用caffe训练和测试时,默认都会打印很多的内容,比如训练精度等。在caffe中常用的打印日志信息的语句有LOG(INFO) << "print log info";LOG(WARNING) << "print log warning";LOG(ERROR) << "print log error";控制是否打印这些信息,可以通过环境变量GLOG_minlog..原创 2018-04-18 11:51:36 · 2576 阅读 · 0 评论 -
caffe 指定使用的GPU
caffe若在GPU模式下,会默认是使用0号GPU,且默认只使用需要的GPU内存。(这一点和tensorflow不一样,tensorflow会默认使用所有的GPU,以及所有的GPU内存),如果0号GPU内存满了,即使其它GPU空闲,caffe也不会使用其它GPU在运行caffe程序前,可以先用nvidia-smi命令查看哪些GPU空闲,然后指定某个GPU使用,比如train.sh -gpu 2 ...原创 2018-04-17 11:43:24 · 4509 阅读 · 1 评论 -
caffe python读取lmdb文件
一般用caffe训练模型的时候,都会首先把数据写入数据库,lmdb/leveldb, 但如果写入之后想check一下是否写对了,怎么去读lmdb文件呢?这里用python代码读取lmdb文件,查看其中的内容,看是否符合预期。代码如下:-Python 代码01import caffe02import lmdb03 04lmdb_env = lmdb.open('train_lmdb') #caffe...原创 2018-04-17 11:39:02 · 1044 阅读 · 0 评论 -
caffe 新增代码编译
1、在caffe初次编译时,用make all即可2、如果修改了caffe源码,直接make即可,会把修改的部分做编译3.1、那如果新增了cpp文件代码呢?如果该cpp文件在caffe默认会编译的目录下,也可以直接make,比如代码放在tools/下,make后,会在caffe/build/tools找到对应的可执行文件3.2、如果cpp文件在自己新建的目录下呢?这个没搞定,感觉应该是需要修改Ma...原创 2018-04-17 11:38:05 · 541 阅读 · 0 评论 -
caffe中非图片数据转为lmdb文件
图片的怎么转,比较简单?可以参考的博客较多,主要是使用convert_imageset函数https://www.cnblogs.com/denny402/p/5082341.html那么对于非图片的呢?比如pcap文件、txt文件等有几个参考网址,给出了python的代码,把一维数据转成lmdb文件,https://www.cnblogs.com/dcsds1/p/5205669.htmlhtt...原创 2018-04-17 11:34:41 · 576 阅读 · 0 评论 -
读取LMDB文件的样本数量
在caffe中一般会把数据转为lmdb或者leveldb格式,再做训练,加速训练过程。如何读取lmdb文件呢?比如需要获知某个lmdb文件的样本数量。在python下,比较简单,生成lmdb后,可以用如下的代码获取:import lmdbenv = lmdb.open("lmdb_path")txn = env.begin()print txn.stat()['entries...原创 2018-05-11 23:21:57 · 3756 阅读 · 0 评论