深度框架|caffe
caffe 随笔
hjxu2016
好记性不如烂笔头|
独乐乐不如众乐乐|
你的纠错与关注就是对我最大的支持
展开
-
Caffe调用caffe.io.load_image时TypeError: _open() got an unexpected keyword argument ‘as_grey‘
caffe调用caffe.io.load_image时遇到TypeError: _open() got an unexpected keyword argument 'as_grey’原因: skimage.io.imread() 调用参数 “as_grey” 实际修改成了 “as_gray”, 主要是scikit-image 的升级版本后版本修改了参数名称。解决方案:定位到 caffe/python/caffe/io.py修改参数...原创 2021-02-02 10:35:06 · 1075 阅读 · 2 评论 -
caffe网络在线可视化工具
发现一个特别好用的在线可视化工具,在这留个记号在线可视化工具ethereonhttp://ethereon.github.io/netscope/quickstart.html原创 2020-01-15 09:23:41 · 228 阅读 · 0 评论 -
简谈caffe中的LRN层
昨日面试,被问道BN层和LRN层,一直以来用的都是bn,所以当时对LRN只剩下点印象,事后弥补了一下这边知识点的不足,浅谈自己对LRN层的理解,如果误导,欢迎指正.LRN层的作用是对局部区域进行归一化,对响应比较大的值变得更大,对响应比较小的值抑制.先看一下caffe的代码可以看到四个参数.layer { name: "norm1" type: "LRN" bottom:...原创 2018-08-18 15:01:35 · 3037 阅读 · 3 评论 -
caffe中的多种loss函数
https://blog.csdn.net/u012177034/article/details/52144325机器学习的目的就是通过对训练样本输出与真实值不一致的进行惩罚,得到损失Loss,然后采用一定的优化算法对loss进行最小优化,进而得到合理的网络权值。本文介绍Caffe中含有的常见的LossLayer及其参数设置方法Caffe的LossLayer主要由6个:(1)Contrastive...转载 2018-03-29 08:50:04 · 2209 阅读 · 0 评论 -
记录一下caffe1.0里添加densenet
参考https://blog.csdn.net/caicai2526/article/details/79792644DenseNet网络是应用由于分类任务中,在目前较好的分类网络ResNets,他们之前存在着很多的不同。下面先来说一说。 先来看一看网络模型结构: DenseNet主要解决的问题是缓解了消失梯度的问题,增强了特征的传播,促进了特征再利用,大大减少了参数的数量,使网络模型模型进行缩减...原创 2018-04-03 17:56:13 · 1160 阅读 · 2 评论 -
cv2.imread()和caffe.io.loadimage的区别
感谢评论区的小伙伴 纠正错误 使用opencv和caffe的伙伴们,可能会有一个疑问,那就是对于同时读取图片的cv2.imread()和caffe.io.loadimage两个函数,有什么差别?1、cv2.imread()接口读图像,读进来直接是BGR 格式数据格式在 0~255,通道格式为(H,W,C),即行,列、通道数(Row, Col, C)。2、caffe.io.load_...转载 2017-05-02 19:17:06 · 3171 阅读 · 4 评论 -
ubuntu安装caffe以及遇到的问题
此处参考http://blog.csdn.net/langb2014/article/details/51579491 Caffe 1、caffe相信大家都很熟悉了,下面是一些基础依赖库[cpp] view plain copy sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopen...原创 2017-04-20 11:07:00 · 7767 阅读 · 1 评论 -
caffe的一些经典网络的实现
原文链接:http://blog.csdn.net/Quincuntial/article/details/72832136自2012年Alexnet赢得了ImageNet竞赛以来,深度学习(神经网络)得到了飞速发展,产生了许多的神经网络结构,本文主要总结Caffe中使用的神经网络(分类的神经网络),本文的神经网络作者都使用Caffe训练过,并在Kaggle的Intel癌症预测比赛转载 2017-12-13 09:17:47 · 3079 阅读 · 0 评论 -
caffe 源码导读(一)了解protobuf
Protobuf的介绍Protocol Buffers 是一种轻便高效的结构化数据存储格式,可以用于结构化数据串行化,或者说序列化。它很适合做数据存储或 RPC 数据交换格式。可用于通讯协议、数据存储等领域的语言无关、平台无关、可扩展的序列化结构数据格式。目前提供了 C++、Java、Python 三种语言的 API,具体介绍网上也有很多详解,下面直接记录一下自己的笔记,方便以后复习。原创 2017-12-11 16:37:42 · 469 阅读 · 0 评论 -
ubuntu14.04+cuda+cudnn+tensorflow-gpu+caffe等深度工具安装小结
最近一直装系统,装系统,还是多卡GPU的,并且显示器接受不到显卡的输出,也就是高清线没办法从显卡上接到显示器上,为啥呢?我也不知道,总之就是没信号,无奈只能从集显上接 普通线到显示器上,以前装过1080ti显卡驱动,也做过笔记http://blog.csdn.net/hjxu2016/article/details/69072779,当时在线安装出现循环登陆问题,只好选择下载run文件安装,这样安原创 2017-11-30 09:59:47 · 1756 阅读 · 2 评论 -
如何将别人训练好的model用到自己的数据上----微调模型
最近研究自然图像的小项目,可是数据集有点少,大约就5W张,80分类。单纯的靠这些数据集训练一个80分类的模型是很难的,于是想到直接调用imagenet里的1000分类的模型下面是转载的大神级别博客,写的非常详细。其实很简单,只需要把train_val.prototxt文件的最后一层全连接层的num_output换了,然后记住将这一层全连接的名字要改了,记住一定要改了。贴上大神的详细解答 ,转载 2017-11-02 14:15:58 · 24982 阅读 · 0 评论 -
places365场景分类-caffe的安装
转自http://blog.csdn.net/renhanchi/article/details/71713227场景分类模型安装文件github地址: https://github.com/metalbubble/places365下载后解压缩也可以直接运行:[cpp] view plain copy git clone htt转载 2017-10-31 19:17:03 · 4187 阅读 · 0 评论 -
caffe中的bn层和scale层
Normalization是数据标准化(归一化,规范化),Batch 可以理解为批量,加起来就是批量标准化。先说Batch是怎么确定的。在CNN中,Batch就是训练网络所设定的图片数量batch_size。Normalization过程,引用论文中的解释:输入:输入数据x1..xm(这些数据是准备进入激活函数的数据)计算过程中可以看到,1.求数据均值;2.求数据方差;3.数据进行...原创 2018-08-18 22:33:32 · 10492 阅读 · 6 评论 -
利用Clion调用caffe的c++接口
之前简单学习了一下CMake的知识,现在就应用到caffe里.CLION调用caffe关键是CMakeLists.txt文件的编写,涉及到一些CMake的知识.首先用CLion建立一个caffeReadImgClassify工程,这时候发现工程目录下有main.cpp和CmakeLists.txt两个文件看 CMakeLists.txt文件内容,注意,有的路径需要自己改变一下cm...原创 2018-10-23 09:22:05 · 1041 阅读 · 0 评论 -
ubuntu安装caffe遇到的一些问题(重新整理)
文章目录Caffe 安装1. ./include/caffe/common.hpp:5:27: fatal error: gflags/gflags.h: No such file or directory2. ./include/caffe/util/mkl_alternate.hpp:14:19: fatal error: cblas.h: No such file or director...原创 2019-08-09 11:44:43 · 1126 阅读 · 0 评论 -
caffe源码导读(四)Blob.cpp解析
本系列参考<深度学习21天实战caffe>这本书所做的笔记,如果错误欢迎指导前篇caffe 源码导读(一) 了解protobufcaffe 源码导读(二) Blob数据结构介绍caffe 源码导读(三) Blob.hpp头文件解析d=========================================================================...原创 2018-12-11 12:46:54 · 624 阅读 · 1 评论 -
caffe源码导读(六)layer.hpp头文件解析
文章目录一、前篇二、正文layer.hpp头文件解析三、关于序列化以及第57行为什么要先reset的小例子本篇为基于<深度学习21天实战caffe>所做的学习笔记,如果错误,欢迎指导一、前篇caffe 源码导读(一) 了解protobufcaffe 源码导读(二) Blob数据结构介绍caffe 源码导读(三) Blob.hpp头文件解析caffe 源码导读(四) Blob...原创 2018-12-17 16:39:14 · 938 阅读 · 0 评论 -
caffe源码导读(五)Layer数据结构描述
文章目录一、前篇二、正文2.1 LayerParameter的数据结构描述(Proto)2.2 Phase结构2.3 ParamSpec结构2.4 NetStateRule结构2.5 TransformationParameter 结构2.6 LossParameter 结构三、参考文献本篇为基于<深度学习21天实战caffe>所做的学习笔记,如果错误,欢迎指导一、前篇caffe...原创 2018-12-11 16:06:22 · 481 阅读 · 0 评论 -
caffe源码导读(三)Blob.hpp头文件解析
文章目录caffe中的Blob.hpp头文件源码解析caffe中的Blob.hpp头文件源码解析#ifndef CAFFE_BLOB_HPP_#define CAFFE_BLOB_HPP_#include <algorithm>#include <string>#include <vector>#include "caffe/common.hp...原创 2018-12-07 16:33:22 · 620 阅读 · 0 评论 -
caffe源码导读(二)Blob数据结构介绍
@TOC前言本篇&amp;amp;lt;深度学习21天实战caffe&amp;amp;gt;这本书的阅读笔记.打开proto/caffe.proto中,刚开始就是介绍Blob数据结构,这个数据结构是其他大部分数据结构的重要依赖.caffe中进行网络层计算时,每一层的输入输出都是以Blob对象为缓冲,是cagge的基本存储单元.。先看Blob的数据结构描述// Specifies the shape (dimensio...原创 2018-12-07 16:04:11 · 563 阅读 · 0 评论 -
记录一下caffe-ssd安装以及无脑训练的过程
首先记录一下caffe-ssd的安装过程,和caffe相似,网上有很多参考,这里简单记录一下cd ssd # ssd是一个空的文件git clone https://github.com/weiliu89/caffe.gitcd caffegit checkout ssd # 注意,一定需要检查分支,出现分支则代表成功配置caffe,此过程和caffe编译是一样的,配置三件套...原创 2018-11-08 20:55:47 · 8663 阅读 · 5 评论 -
ssd-caffe中的annotationDatum数据结构
这篇博客讲解的非常好,我这里只是搬运和总结SSD目标检测lmdb数据结构剖析先看一张图,完美解释了AnnotationDatum的数据结构。 um的数据结,SSD读取数据,需要将label和图片封装到一个数据结构下,这时候老版本caffe的Datum数据结构不够用了我们来看看caffe-ssd的 AnnotatedDatum数据先看 caffe.proto文件(prot...原创 2018-11-10 15:10:33 · 910 阅读 · 0 评论 -
caffe-segnet的一个小例子
最近想尝试一下图像的分割,就先用caffe-segnet做了一次简单的实验,一个简单二分类的实验,目标就是细胞分割首先是ubuntu下配置segnet-caffe,安装教程http://blog.csdn.net/hjxu2016/article/details/77473591然后是对数据的处理,需要原图和groudtruth图,因为我得到的数据是二分类的,所以给我的groudtruth原创 2017-09-15 19:22:49 · 4069 阅读 · 3 评论 -
caffe-segnet安装
SegNet是英国剑桥大学Computer Vision and Robotics Group的作品;是一个深度卷积编码-解码结构,用于对图像进行像素级的语义分割;可以将像素分为12类,包括道路、建筑物、电线杆、路牌、行人和骑行者等12类标注,具有实时性;其源代码在github上。转自http://blog.csdn.net/u013832707/article/details/5367083转载 2017-08-22 10:10:01 · 4925 阅读 · 3 评论 -
caffe中创建lmdb格式时遇到Shuffling data Segmentation fault (core dumped)
Shuffling data Segmentation fault (core dumped)?这是什么鬼?第一次遇到这个问题,可以说整个实验室就我一个在提取lmdb遇到这个问题这应该是caffe自己出错了重新编译了下affe 改动后要重新编译,之前不知道,走了弯路。1.更新了内核代码后,要在caffe-master的文件路径里执行如下步骤:make cleanmake原创 2017-02-17 15:37:02 · 2864 阅读 · 0 评论 -
Caffe新手教程傻瓜系列(8):命令行解析
caffe的运行提供三种接口:c++接口(命令行)、Python接口和matlab接口。本文先对命令行进行解析,后续会依次介绍其它两个接口。caffe的c++主程序(caffe.cpp)放在根目录下的tools文件夹内, 当然还有一些其它的功能文件,如:convert_imageset.cpp, train_net.cpp, test_net.cpp等也放在这个文件夹内。经过编译后,这些文转载 2017-01-16 20:27:45 · 651 阅读 · 0 评论 -
Caffe新手教程傻瓜系列(7):solver优化方法
上文提到,到目前为止,caffe总共提供了六种优化方法:Stochastic Gradient Descent (type: "SGD"),AdaDelta (type: "AdaDelta"),Adaptive Gradient (type: "AdaGrad"),Adam (type: "Adam"),Nesterov’s Accelerated Gradient (type: "Ne转载 2017-01-16 20:21:21 · 403 阅读 · 0 评论 -
Caffe新手教程傻瓜系列(6):solver及其配置
solver算是caffe的核心的核心,它协调着整个模型的运作。caffe程序运行必带的一个参数就是solver配置文件。运行代码一般为# caffe train --solver=*_slover.prototxt在Deep Learning中,往往loss function是非凸的,没有解析解,我们需要通过优化方法来求解。solver的主要作用就是交替调用前向(forwar转载 2017-01-16 20:18:49 · 367 阅读 · 0 评论 -
Caffe新手教程傻瓜系列(5):Blob,Layer and Net以及对应配置文件的编写
深度网络(net)是一个组合模型,它由许多相互连接的层(layers)组合而成。Caffe就是组建深度网络的这样一种工具,它按照一定的策略,一层一层的搭建出自己的模型。它将所有的信息数据定义为blobs,从而进行便利的操作和通讯。Blob是caffe框架中一种标准的数组,一种统一的内存接口,它详细描述了信息是如何存储的,以及如何在层之间通讯的。1、blobBlobs封装了运行时的数转载 2017-01-16 20:11:13 · 371 阅读 · 0 评论 -
Caffe新手教程傻瓜系列(4):其它常用层及参数
本文讲解一些其它的常用层,包括:softmax_loss层,Inner Product层,accuracy层,reshape层和dropout层及其它们的参数配置。1、softmax-losssoftmax-loss层和softmax层计算大致是相同的。softmax是一个分类器,计算的是类别的概率(Likelihood),是Logistic Regression 的一种推广。Lo转载 2017-01-16 20:01:35 · 379 阅读 · 0 评论 -
Caffe新手教程傻瓜系列(3):激活层(Activiation Layers)及参数
在激活层中,对输入数据进行激活操作(实际上就是一种函数变换),是逐元素进行运算的。从bottom得到一个blob数据输入,运算后,从top输入一个blob数据。在运算过程中,没有改变数据的大小,即输入和输出的数据大小是相等的。输入:n*c*h*w输出:n*c*h*w常用的激活函数有sigmoid, tanh,relu等,下面分别介绍。1、Sigmoid对每个转载 2017-01-16 19:03:41 · 364 阅读 · 0 评论 -
Caffe新手教程傻瓜系列(2):视觉层(Vision Layers)及参数
本文只讲解视觉层(Vision Layers)的参数,视觉层包括Convolution, Pooling, Local Response Normalization (LRN), im2col等层。1、Convolution层:就是卷积层,是卷积神经网络(CNN)的核心层。层类型:Convolution lr_mult: 学习率的系数,最终的学习率是这个数乘以so转载 2017-01-16 18:58:29 · 448 阅读 · 0 评论 -
caffe新手教程傻瓜系列(1)数据层及参数
要运行caffe,需要先创建一个模型(model),如比较常用的Lenet,Alex等, 而一个模型由多个屋(layer)构成,每一屋又由许多参数组成。所有的参数都定义在caffe.proto这个文件中。要熟练使用caffe,最重要的就是学会配置文件(prototxt)的编写。层有很多种类型,比如Data,Convolution,Pooling等,层之间的数据流动是以Blobs的方式进行。转载 2017-01-11 19:47:51 · 663 阅读 · 0 评论 -
matlab 读取caffe生成的mean.binaryproto均值文件
如果在caffe训练中,用到了自己生成的均值文件,如果在matlab中读取,可以直接调用matlab的接口mean_data = caffe.io.read_mean('mean.binaryproto');如果是python接口,就不能这么调用了,得将mean.binaryproto转换程python能够可视化识别的mean.npy文件具体可以看上一节的详细讲解原创 2017-03-06 14:33:40 · 2449 阅读 · 0 评论 -
caffe编译matlab出错 gcc版本过高需要降级
编译matlab是会遇到错误,由于matlab版本不同而支持的编译器版本不同,所以会出现问题。Matlab 2014a(2015a)的版本是支持版本4.7.x所以在使用matlab调用mex文件的时候,基本上都会报错,根据报错信息,考虑如下两步解决方案。1. 降级安装gcc/g++版本为4.7.x(1). 下载gcc/g++ 4.7.x$ sudo apt-get instal原创 2017-03-27 16:48:15 · 4450 阅读 · 0 评论 -
Caffe新手教程傻瓜系列(9):训练和测试自己的图片
在深度学习的实际应用中,我们经常用到的原始数据是图片文件,如jpg,jpeg,png,tif等格式的,而且有可能图片的大小还不一致。而在caffe中经常使用的数据类型是lmdb或leveldb,因此就产生了这样的一个问题:如何从原始图片文件转换成caffe中能够运行的db(leveldb/lmdb)文件?前面文章有学习过着个数据由来和使用。在caffe中,作者为我们提供了这样一个文件:转载 2017-01-16 20:33:16 · 2262 阅读 · 2 评论 -
caffe 学习系列:计算图片的均值以及转化npy格式
一般都要计算均值,首先caffe自带的compute_image_mean函数这个函数有两个参数,一个是caffe的lmdb文件,还有一个是生成的binaryproto格式均值文件执行下列.sh脚本#!/usr/bin/env sh# Compute the mean image from the imagenet training lmdb# N.B. this is avail原创 2017-03-06 12:59:32 · 1510 阅读 · 0 评论 -
caffe利用draw_net.py绘制net结构
转自http://blog.csdn.net/langb2014/article/details/509705201、安装pydot[cpp] view plain copy $ sudo apt-get install python-pydot 2、安装graphviz[cpp] view plain copy $转载 2017-08-11 17:34:48 · 506 阅读 · 0 评论 -
caffe制作lmdb数据以及均值(简单暴力流)
假设我们的数据就两类,train0和train1两个文件夹,这两个文件夹存在多个子目录,并且每个子目录中还存在子目录,这给制作list列表带来了较大的麻烦我们建立下面shell文件,文件名为creat_list.sh,代码如下# /usr/bin/env sh DATA=/media/hjxu/luhaoda/from_xhj/metastasis_data/train0TxtPat原创 2017-08-18 10:43:37 · 723 阅读 · 0 评论 -
caffe mnist实战训练(2)得出图片的lmdb格式
在上一章 我们已经得到图片的txt列表了,现在我们需要制作caffe可以识别的lmdb格式的文件了我们需要调用caffe中convert_imageset这个函数该文件的调用格式是convert_imageset [FLAGS] ROOTFOLDER/ LISTFILE DB_NAME 需要带四个参数:FLAGS: 图片参数组,后面详细介绍ROOTFOL原创 2017-03-29 14:36:49 · 514 阅读 · 0 评论