caffe
xunan003
AI独角兽企业算法工程师
展开
-
源码发布:Identification of navel orange lesions by nonlinear deep learning algorithm
PENLU论文的代码实现原创 2022-12-14 18:27:00 · 116 阅读 · 0 评论 -
python讀取和寫入caffe-ssd中lmdb data
原文:https://zhuanlan.zhihu.com/p/76318150lmdb是Cafffe中应用的一种数据库,采用内存-映射文件(memory-mapped files),拥有非常好的I/O性能,而AnnotatedDatum是caffe在LMDB数据库上保存数据的一种格式,主要用于SSD等目标检测模型训练数据的保存。在SSD-caffe的官方代码中(好像不算官方,是第三方实现的),模型训练是通过自定义层读取读取LMDB数据库文件进行数据导入的,而指定格式的LMDB数据则是通过两个脚本调转载 2020-06-30 13:42:45 · 291 阅读 · 0 评论 -
caffe-ssd中關於AnnotatedDatum結構的解析
所以首先理解AnnotatedDutam結構。知乎上:https://zhuanlan.zhihu.com/p/76318150講述比較容易理解,可參考。AnnotatedDatum就是caffe用来保存数据对象的一种数据结构了,AnnotatedDatum中又包含一个Datum类型数据(用于保存图像内容)和一个基于google的ProtoBuf(一种接口描述语言)的自定义类型数据annotation_group(用于保存检测框),此外AnnotatedDatum自身也是Datum类型数据,Dat.原创 2020-06-30 11:58:24 · 380 阅读 · 0 评论 -
caffe生成caffe.pd.h
在caffe/src/caffe/proto文件夹利用caffe.proto生成caffe.pb.cc和caffe.pb.h的命令:protoc --cpp_out=./ caffe.proto转载 2020-06-29 18:51:48 · 282 阅读 · 0 评论 -
caffe报错 error==cudaSuccess(8 vs. 0) invalid device function
显示此问题为显卡计算能力不匹配造成,在caffe目录下的Makefile.config文件当中做修改# For CUDA < 6.0, comment the lines after *_35 for compatibility.CUDA_ARCH := -gencode arch=compute_60,code=sm_60 \ -gencode arch=c...原创 2018-08-28 12:29:20 · 1897 阅读 · 2 评论 -
caffe输出分类训练时验证集识别错误的样本
本文以mnist以及lenet为例1.将测试错误样本打印出来当运行测试时,最后的输出层为AccuracyLayer层。AccuracyLayer对前一层全连接层ip2的10个神经元输出结果进行排序,然后将最大值所对应的神经元序号与标签label进行比较,相等则判定预测正确;否则判定预测错误。所以,首先对accuracy_layer函数进行功能添加,打开src/caffe/layers/accura...原创 2018-05-14 20:50:18 · 2139 阅读 · 0 评论 -
训练好的caffemodel对图像进行批量测试并输出其TP、FN、TRP以及测试平均使用时间。
# coding=utf-8from __future__ import divisionimport osimport caffeimport numpy as np#import datetimeimport timeimport cv2root = '/home/x306/xn/caffe-master/'deploy = root + 'examples/facete...原创 2018-05-19 20:11:13 · 1564 阅读 · 0 评论 -
利用python输出caffemodel的权值(weights)参数至txt文档中。
#-*- coding: UTF-8 -*-#!/usr/bin/env python # 引入“咖啡” import caffe import numpy as np root = '/home/x306/xn/caffe-master/' # 使输出的参数完全显示 # 若没有这一句,因为参数太多,中间会以省略号“……”的形式代替 np.set_prin...原创 2018-05-19 20:08:05 · 2884 阅读 · 0 评论 -
caffe框架下使用python写分类网络架构train_test.prototxt和solver.prototxt并直接运行程序
from __future__ import print_functionimport caffefrom caffe import layers as L, params as Pfrom caffe.proto import caffe_pb2import mathimport osimport statimport subprocesscaffe_root = "/ho...原创 2018-05-05 21:37:06 · 525 阅读 · 0 评论 -
caffe中pad的作用
扩充边缘,默认为0,不扩充。扩充的时候是左右、上下对称的,比如卷积核的大小为5*5,那么pad设置为2,则四个边缘都扩充2个像素,即宽度和高度都扩充了4个像素,这样卷积运算之后的特征图就不会变小。也可以通过pad_h和pad_w来分别设定。原创 2018-01-19 19:56:39 · 3638 阅读 · 0 评论 -
caffe配置matlab接口:从安装matlab r2016b到配置详解
一. 安装matlab r2016b刚开始参照网上大部分还是MATLAB2014a的教程,但是在编译caffe的时候需要把gcc降级,麻烦,(在安装的时候,按照某个博文,自己装好了,但是就是编译不了caffe matcaffe,也是醉了,最后还是选择16版本的吧,gcc4.9版本的就可以编译,不用降级) 下载Matlab 2016bMatlab几乎每一个版本都有相应的破解版,为我们这...原创 2018-01-30 22:39:02 · 1108 阅读 · 1 评论 -
编译gpu版caffe遇到的问题
1、.build_release/lib/libcaffe.so:对‘gflags::ParseCommandLineFlags(int*, char***, bool)’未定义的引用解决:这里继续安装gflags: https://github.com/schuhschuh/gflags/archive/master.zip下载。解压cd gflags-mastermkdir原创 2017-07-09 22:43:37 · 2422 阅读 · 0 评论 -
libcudart.so.8.0: cannot open shared object file: No such file or directory
将export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-8.0/lib64添加至bashrc。如果仍然不行,再尝试将以下添加至bashrc:export PATH=$PATH:/usr/local/cuda-8.0/binexport LIBRARY_PATH=$LIBRARY_PATH:/usr/local/cuda-8.0/lib64...原创 2018-08-28 17:42:07 · 383 阅读 · 0 评论 -
Mobilenet-SSD的Caffe系列实现
先引出题目,占个坑,以后慢慢填。mobilenet 也算是提出有一段时间了,网上也不乏各种实现版本,其中,谷歌已经开源了Tensorflow的全部代码,无奈自己几乎不熟悉Tensorflow,还是比较钟爱Caffe平台,因而一直在关心这方面。单纯的Mobilenet分类不是关注重点,如何将其应用到目标检测网络才是关键,目前基本看好的思路就是Mobilenet+SSD,github上已经有至...转载 2018-09-11 20:04:45 · 510 阅读 · 0 评论 -
基于Caffe的CNN剪枝
背景传统的CNN网络训练完之后,全连接层的权值矩阵动辄就几十万、几百万个参数值,可见CNN模型的庞大,但是仔细观察CNN的权值矩阵就会发现,里面有很多的参数的绝对值都很小,比如在-0.001到0.001之间,也就是说这些连接对CNN的训练或者测试结果作用很小,因此我们就可以尝试将这些小值参数去掉,既可以减小模型的规模又可以减少计算量,最重要的前提是要保证CNN的有效性,也即正确率。主要思路...转载 2018-09-12 15:58:46 · 520 阅读 · 0 评论 -
caffe中C++接口设置多GPU
gpu模式: Caffe::set_mode(Caffe::GPU)gpu选择:Caffe::SetDevice(int gpuid)此外,上面两条命令 setmode 以及setdevice 在运行后,会自动占用一些显存,所以setdevice 一定是在setmode 之前,不然会默认占用GPUid0的一部分内存。具体原因不明。...原创 2019-07-09 15:09:27 · 781 阅读 · 0 评论 -
python解析caffemodel
caffemodel是二进制的protobuf文件,利用protobuf的python接口可以读取它,解析出需要的内容不少算法都是用预训练模型在自己数据上微调,即加载“caffemodel”作为网络初始参数取值,然后在此基础上更新。使用方式往往是:同时给定solver的prototxt文件,以及caffemodel权值文件,然后从solver创建网络,并从caffemodel读取网络权值的初值...转载 2019-04-24 19:40:12 · 1604 阅读 · 0 评论 -
pytorch2caffe工具使用教程及出现KeyError: 'AdaptiveAvgPool2dBackward'时解决方案
工具使用教程:工具下载地址:https://github.com/longcw/pytorch2caffe依赖包安装:python环境:python2.7配置caffe:具体方法请参考https://blog.csdn.net/xunan003/article/details/74905718安装pytorch&torchvision(版本0.2.0):pip inst...原创 2019-04-24 16:38:44 · 3376 阅读 · 0 评论 -
caffemodel权值可视化
原文地址:https://www.cnblogs.com/denny402/p/5103425.html通过前面的学习,我们已经能够正常训练各种数据了。设置好solver.prototxt后,我们可以把训练好的模型保存起来,如lenet_iter_10000.caffemodel。 训练多少次就自动保存一下,这个是通过snapshot进行设置的,保存文件的路径及文件名前缀是由snapshot_...转载 2019-04-09 17:52:36 · 302 阅读 · 0 评论 -
读取和修改caffemodel中权值
使用caffe框架训练后得到的权重通过Google Protobuf来存储为.caffemodel的二进制文件,为了更好地更改网络结构和对已有的caffemodel进行finetune,通常我们需要修改一些参数,去为了更好的适应我们自己设计的网络结构并进行训练好在caffe的Python接口提供了针对caffemodel文件的修改方法为了更好地可视化,这里使用了Python的jupyter...转载 2019-04-09 17:34:55 · 2244 阅读 · 0 评论 -
caffe测试训练好的caffemodel和记录每层的运行时间
在caffe的目录下在terminal中运行以下命令用以测试已经训练好的caffemodel的accuracy:(或者将以下命令放在.sh文件中运行)./build/tools/caffe test --model=/examples/mnist/lenet_train_test.prototxt --weights= /examples/mnist/lenet_iter_20000....转载 2019-04-09 17:29:29 · 505 阅读 · 0 评论 -
caffe中 对caffemodel进行结构修改并保存
问题综述:利用matlab,在编译matcaffe的前提下,对已有的caffemodel进行结构修改,例如,删除一些层等问题描述:在深度学习过程中,自己的目标任务往往需要基于物体识别等等其他任务的基础上,加上自己的训练数据不足,这就需要我们对已有的网络进行拷贝权重,用自己的数据进行fine-tune,从而达到自己的目的解决方法:首先需要matcaffe,运行以下代码即可caf...转载 2019-04-09 17:27:50 · 2397 阅读 · 0 评论 -
caffe-网络结构的修剪
网络结构的压缩是近年来研究热点,接下来的两节,我们将介绍Deep Compression的两个策略网络修剪和网络权重共享量化的实现方法,我们通过mnist的LeNet5作为例子,而其他网络的实现也是类似的。关于Deep Compression的原理,可以参见其论文:Han S, Mao H, Dally W J. Deep compression: Compressing deep neura...转载 2018-09-12 16:27:30 · 853 阅读 · 0 评论 -
import caffe失败 No module named caffe 或 ImportError:No module named _caffe
原文链接:http://blog.csdn.net/u010417185/article/details/53559107在成功编译caffe的源码之后,可以在python环境中使用caffe。在Ubuntu环境下,打开python解释程序,输入import caffe时:出现以下错误[python] view plain copy >>>imp原创 2017-07-17 23:39:54 · 5460 阅读 · 0 评论 -
使用cifar100,转化lmdb及制作均值文件
1.下载cifar100数据集,二进制的 http://www.cs.toronto.edu/~kriz/cifar.htmlCIFAR-100 binary version (suitable for C programs)在data文件夹下建立文件夹cifar100。将上面下载的二进制文件解压后里面的子文件放在新建立的cifar100文件里。2、在examples文件下建立文原创 2017-10-09 20:43:07 · 1245 阅读 · 0 评论 -
caffe源码学习--blob基本用法(基于《21天实战caffe》)
1、p102页编写blob_demo.cpp后g++编译生成app文件。在赵老师的书中,很简单就写成功,估计会有人出现一些错误。其实不是路径问题,是格式的问题,嘿嘿!在你写好Blob模板类。生成可执行程序app的时候就会出现错误! CAFFE_ROOT是您之前安转caffe的根目录。 原先是:~/caffe$ g++ -o app blob_demo.cpp -I原创 2017-05-25 17:59:07 · 1487 阅读 · 0 评论 -
【深度学习】caffe中那些layers
原文链接:http://blog.csdn.net/tracer9/article/details/504569860. 引子自从半年前开始进入418实验室研究深度学习,可以说caffe这一深度学习开源框架,一直伴随着我。经过了大半年的学习,虽然还有许多东西尚待完善,但起码对于caffe已经有了一个比较感性的认识。互联网上,关于深度学习和caffe的资料汗牛充栋,但质量往往参差转载 2017-06-04 21:46:31 · 1425 阅读 · 0 评论 -
Layer的实现细节
原文链接:http://blog.csdn.net/xizero00/article/details/50914471一、Layer的作用简介Layer实际上定义了Layer的基本操作,即初始化层、前向传播和反向传播。在前向传播中根据bottom blob得到top blob,反向传播则根据top反传到bottom。而且在前传的时候还可以计算loss,一般来说只有最后一层才会计算los转载 2017-06-06 20:25:07 · 4566 阅读 · 0 评论 -
ubuntu14.04环境下配置caffe
1. 安装build-essentials安装开发所需要的一些基本包[html] view plain copy sudo apt-get install build-essential 如果出现essential包不可用的情况,可以执行下列命令解决:[html] view plain原创 2017-03-30 16:26:55 · 705 阅读 · 0 评论 -
caffe源码解析 — caffe.proto
引言要看caffe源码,我认为首先应该看的就是caffe.proto。 它位于…\src\caffe\proto目录下,在这个文件夹下还有一个.pb.cc和一个.pb.h文件,这两个文件都是由caffe.proto编译而来的。 在caffe.proto中定义了很多结构化数据,包括:BlobProtoDatumFillerParameterNetParameterSolver转载 2017-05-28 16:39:54 · 370 阅读 · 0 评论 -
解析protobuf
一,什么是Protobuf官方文档给出的是:a language-neutral, platform-neutral, extensible way of serializing structured data for use in communications protocols, data storage, and more.一种语言中立的,平台中立的,可扩展的串行化结构化原创 2017-05-28 15:11:14 · 459 阅读 · 0 评论 -
caffe训练我们自己的数据
本篇继续之前的教程,下面我们尝试使用别人定义好的网络,来训练我们自己的网络。1、准备数据首先很重要的一点,我们需要准备若干种不同类型的图片进行分类。这里我选择从ImageNet上下载了3个分类的图片(Cat,Dog,Fish)。图片需要分两批:训练集(train)、测试集(test),一般训练集与测试集的比例大概是5:1以上,此外每个分类的图片也不能太少,我这里每个分类大概原创 2017-05-03 11:23:20 · 354 阅读 · 0 评论 -
caffe solver参数意义与设置
batchsize:每迭代一次,网络训练图片的数量,例如:如果你的batchsize=256,则你的网络每迭代一次,训练256张图片;则,如果你的总图片张数为1280000张,则要想将你所有的图片通过网络训练一次,则需要1280000/256=5000次迭代。epoch:表示将所有图片在你的网络中训练一次所需要的迭代次数,如上面的例子:5000次;我们称之为 一代。所以如果你想要你的网络原创 2017-05-02 19:42:06 · 591 阅读 · 0 评论 -
深入理解Caffe MNIST DEMO中的LeNet网络模型
目录1. 初见LeNet原始模型2. Caffe LeNet的网络结构3. 逐层理解Caffe LeNet3.1 Data Layer3.2 Conv1 Layer3.3 Pool1 Layer3.4 Conv2 Layer3.5 Pool2 Layer3.6 Ip1 Layer3.7 Relu1 Layer3.8 Ip2 Layer3.9 Loss Layer4. Caffe转载 2017-04-01 20:28:13 · 1209 阅读 · 0 评论 -
caffe源码解读之net
原文链接#include #include #include #include #include #include #include "caffe/common.hpp" #include "caffe/layer.hpp" #include "caffe/net.hpp" #include "caffe/proto/caffe.pb.h" #inc转载 2017-06-09 20:12:27 · 549 阅读 · 0 评论 -
caffe可视化方法--配置python接口
原帖地址:http://www.cnblogs.com/denny402/p/5088399.htmlcaffe程序是由c++语言写的,本身是不带数据可视化功能的。只能借助其它的库或接口,如opencv, python或matlab。大部分人使用python接口来进行可视化,因为python出了个比较强大的东西:ipython notebook, 现在的最新版本改名叫jupyter转载 2017-06-21 17:19:13 · 716 阅读 · 0 评论 -
caffe保存训练log日志文件并利用保存的log文件绘制accuary loss曲线图
1、训练模型时保存log日志文件 一般情况下我们的训练模型标准语句是:$ sudo ./build/tools/caffe train -solver xxx/xxx/solver.prototxt xxx/xxx/表示你的solver.prototxt文件所在位置 需要保存log文件时的命令是:$ sudo GLOG_logtostderr=0 GL原创 2017-06-11 11:29:57 · 6701 阅读 · 1 评论 -
Ubuntu16.04 + cuda8.0 + GTX1080 + matlab14.04a + Opencv3.0 + caffe 安装教程
原文链接:http://blog.csdn.net/lee_j_r/article/details/52693724注意:本教程只针对以下配置而言,其他配置可能会出现其他问题,不承担任何责任。配置说明:双硬盘双系统,250G固态硬盘装了win10,4T机械硬盘装了Ubuntu16.04双显卡:集显加独显(GTX1080)先按照了win10,再装Ubuntu16.04,都是制作了U盘引导盘安装,没什...转载 2017-07-09 20:19:53 · 1623 阅读 · 0 评论 -
Ubuntu16.04 +cuda8.0+cudnn+opencv+caffe+theano+tensorflow配置明细
原文链接:http://blog.csdn.net/hit2015spring/article/details/53510909?locationNum=2&fps=1安装英伟达显卡驱动首先去官网上查看适合你GPU的驱动(http://www.nvidia.com/Download/index.aspx?lang=en-us)[python] view plai转载 2017-07-09 20:18:01 · 1938 阅读 · 0 评论 -
使用caffe训练时Loss变为nan的原因
梯度爆炸原因:梯度变得非常大,使得学习过程难以继续现象:观察log,注意每一轮迭代后的loss。loss随着每轮迭代越来越大,最终超过了浮点型表示的范围,就变成了NaN。措施: 1. 减小solver.prototxt中的base_lr,至少减小一个数量级。如果有多个loss layer,需要找出哪个损失层导致了梯度爆炸,并在train_val.prototxt中减原创 2017-05-03 09:55:36 · 989 阅读 · 0 评论