caffe实战笔记

实战篇:使用Caffe构建卷积神经网络 "实战篇:使用 Caffe 构建卷积神经网络" 1. 背景介绍 1.1 人工智能的兴起 人工智能已经成为当今科技领域最热门的话题之一。随着计算能力的不断提升和大数据时代的到来,人工智能技术得到了前所未有的发展。 阅读详情

Caffe简要介绍:

Caffe还没有windows版本,所以我需要远程登录linux服务器

Caffe主要处理图片/图片序列

 Caffe读取的数据格式

从专用的数据库中读取(lmdb、leveldb)

直接读取图片

从内存中读取(会占很多内存)

从HDF5文件中读取

从滑动窗口中读取(在大图中滑动一次作为一张小图)

最常用的是前面两种方式。默认是从lmdb数据库格式中读取,因此需要先把图片文件转换成lmdb格式文件。直接读取图片会导致无法减均值。如果不考虑减均值的情况,可直接读取图片。

 Caffe操作1----准备数据

Step1:得到文件列表清单

 

上面的图片源自FER库,其中单张图表示一个表情,写代码自动生成txt文档

Step2:转换成imdb格式

命令原理:

 

其中包括上面四个参数,粉色参数可以选择不设,其中--表示可以不调整

实际操作:

在根目录home下的/caffe路径下打开终端,输入sudo命令,输入密码,进入最大权限:

 

输入命令:(输入时注意空格)

 

在caffe中,作者为我们提供了这样一个文件:convert_imageset.cpp,存放在根目录下的tools文件夹下。编译之后,生成对应的可执行文件放在 buile/tools/ 下面,这个文件的作用就是用于将图片文件转换成caffe框架中能直接使用的imdb文件。

屏幕上显示:

 

查看结果:

在目标目录下新增了我命名的一个文件夹

 

文件夹里包括两个子文件,data.mdb存放数据;lock.mdb存放标签

 

基础知识补充

Linux下的文件夹与目录

/home

根目录,分区时分得最大

/bin

存放系统命令

/user

最大的目录,存放应用程序和文件

/etc

存放配置文件

/dev

设备特殊文件

/mnt

用于临时挂载硬盘、光盘

/src

里面放源文件如cpp

如何生成train.txt文件以及如何在转imdb格式时调整图片格式,见:http://www.cnblogs.com/denny402/p/5082341.html

Step3:计算均值

减去均值,可以提高精度。当然也可以选择不减均值。

扩展名必须是binaryproto

实际代码:

 

其中包括两个参数,一个是放置imdb数据的文件地址,另一个是保存均值文件的地址及文件名字

得到binarypro均值文件

扩展阅读:http://www.cnblogs.com/denny402/p/5102328.html

Caffe操作2----构建网络结构

在运行的整个流程中,可以分为三个阶段:训练阶段、验证阶段和测试阶段。网络结构在不同的阶段是不同的,都存放在prototxt文件里面。为了方便,一般将训练阶段和验证阶段的网络结构放在一个文件里,测试阶段的网络结构单独放在一个文件里:

 

一个layer表示一层

layer是可以复制可以嵌套的

1)数据层

Name可以随便取

Type是系统自带的,不可以自己命名

Top表示向上传送数据,bottom表示从下面接收数据,通过这个top还是bottom就决定了数据的流向以及不同层之间的链接关系

Phase:train表示只有训练时调用这层

Mirror表示翻转

Cropsize表示一张图变为40*40*10,使得样本数增加

Batchsize是2的倍数,表示批量处理

http://www.cnblogs.com/denny402/p/5070928.html

2)卷积层

 

Decay=0表示不衰减

Num_output 卷积核个数/节点数目

Kernal_size 一般是3*3 5*5 7*7 不能太大

Padding 卷积后图变小,所以固定填充0,如果=2,表示周边上下左右填充2个pixel

Gaussian表示用高斯方法对w与b进行初始化

http://www.cnblogs.com/denny402/p/5071126.html

3)激活层

 

常用relu,sigmod

http://www.cnblogs.com/denny402/p/5072507.html

4)池化层

caffe只支持max和average,stochastic是随机的意思

Stride不能写1,否则就没有池化功能

http://www.cnblogs.com/denny402/p/5071126.html

5)全连接层

 

Xvaier初始化方法很好,默认值为0

Type类型都不变

http://www.cnblogs.com/denny402/p/5072746.html

6)其它层

Loss层加在全连接层后面

如果要测试,还加一层softmax层

Deploy.prototxt文件用于测试阶段,测试数据没有标签值,因此数据输入层与其它两个阶段不同。

 

Caffe自动会复制灰度图变为3通道图

Caffe操作3----配置参数solver.prototxt

这里设置全局参数

每训练完成一个interval以后就验证一次是否>449

基础学习率决定收敛不收敛

Step:每隔多少变化一次

Stepshot:每训练多少保存一次参数

 

http://www.cnblogs.com/denny402/p/5074049.html

Caffe操作4----训练模型

这一步会生成caffe 的model文件,把参数训练完成

 

 

例:

build/tools/caffe train -solver /home/bnu/fer/solver.prototxt

http://www.cnblogs.com/denny402/p/5076285.html

Caffe操作5----测试模型

 

Classification.bin是自带的可执行体

http://www.cnblogs.com/denny402/p/5111018.html

 


原文地址: http://www.cnblogs.com/weiqinglan/p/5969016.html?utm_source=itdadao&utm_medium=referral

深度学习Caffe实战笔记(6)Windows caffe平台用Siamese网络跑自己的数据 终于到了介绍如何使用Siamese网络跑自己的数据了,在网上、论坛上、群里关于用Siamese网络的资料很多,但是实战的资料很少,难道是因为太容易了吗?反正博主查阅了各种地方,几乎没有找到Siamese网络实战的东东,即使有零星关于实战的东西,那也是基于Ubuntu系统,殊不知Ubuntu系统跑caffe可要比Windows简单的多了,所以,就本博主的调研情况来看,这篇博客绝对称的上是Windows 阅读详情

相关推荐

Caffe实战笔记:Caffe平台上,如何调整卷积神经网络结构

深度学习Caffe实战笔记,Caffe平台下,如何简单调整卷积神经网络结构,举一反三,大道至简

算法之美 310

初级入门:基于Caffe的神经网络理论与实战

目录: 2基于caffe的神经网络基础知识与实战 2.1 问题定义 2.2 初识神经网络 2.2.1 神经元 2.2.2 前馈过程 2.2.3 反向过程 2.3 典型CNN网络——LeNet 2.3.1 深度卷积神经网络结构 2.3.1.1 卷积层 2.3.1.2 池化层 2.3.1.3 全连接层 2.3.1.4 激活层 2.3.2 前向传播过...

u014191607的博客 896

深度学习Caffe实战笔记(1)环境搭建

(1)环境搭建从知道深度学习开始,就一直想学习使用caffe,碍于各种事情一直没有如愿,这几天终于找了个时间搞了一下,打算把学习的过程整理成笔记,包括环境搭建、跑车牌识别数据,跑mnist数据,用Alexnet跑自己的数据,用Siamese网络跑mnist数据,用Siamese网络跑自己的数据以及如何调整网络结构等等。。。。后续我会慢慢更新,笔记的主要内容是如何使用caffe,主要侧重于实战,基础理

gybheroin的博客 5384

Caffe深度学习框架实战案例

Caffe(Convolutional Architecture for Fast Feature Embedding)是一个开源的深度学习框架,广泛应用于图像分类、物体检测和神经网络模型训练等领域。以下将从多个方面详细阐述Caffe深度学习框架的实战案例。本文详细阐述了Caffe深度学习框架在图像分类、物体检测、语音识别和自然语言处理等领域的实战案例。通过这些案例,我们可以看到Caffe在深度学习领域的广泛应用和显著效果。然而,随着技术的不断发展,Caffe也面临着一些挑战,如模型训练速度、模型优化等。

2501_92487436的博客 311

深度学习Caffe实战笔记(7)Caffe平台下,如何调整卷积神经网络结构

授人以鱼不如授人以渔,红鲤鱼家有头小绿驴叫驴屡屡。至于修改网络结构多亏了课题组大师姐老庞,在小米实习回校修整,我问她怎么修改网络,她说改网络就是改协议,哎呀,一语惊醒梦中人啊!虽然博主之前也想过修改网络协议试一试,鉴于一直不懂网络结构中的各个参数是干啥的,所以一直没去实施,这次终于开始尝试了。 caffe平台实现卷积神经网络实在方便的很啊,只需要一个协议文件定义一下网络结构,再定义一个超参协议文件

gybheroin的博客 5888

深度学习Caffe实战笔记(5)Windows caffe平台跑Siamese mnist数据集

前几篇博客介绍了环境搭建,caffe跑lenet,alexnet,cifar10,基础的一些操作都介绍的很详细了。这篇博客介绍如何使用Siamese网络跑mnist数据集,下一篇介绍如何用Siamese网络跑自己的数据集。说到Siamese网络,这次不哭了,因为几篇博客把该哭的都哭完了。 网上的资料都是基于Ubuntu系统的,介绍Windows平台下Siamese网络几乎没有,所以尽管博主查阅了各

gybheroin的博客 4707

Caffe 的深度学习训练全过程

本文为大数据杂谈 4 月 20 日微信社群分享内容整理。 今天的目标是使用 Caffe 完成深度学习训练的全过程。Caffe 是一款十分知名的深度学习框架,由加州大学伯克利分校的贾扬清博士于 2013 年在 Github 上发布。自那时起,Caffe 在研究界和工业界都受到了极大的关注。Caffe 的使用比较简单,代码易于扩展,运行速度得到了工业界的认可,同时还有十分成熟的社区。 对于刚开始学习深...

上善若水 5911

深度学习Caffe实战笔记(3)用AlexNet跑自己的数据

上一篇博客介绍了如何在caffe框架平台下,用LeNet网络训练车牌识别数据,今天介绍用AlexNet跑自己的数据,同样基于windows平台下,会比基于Ubuntu平台下麻烦一些,特别是后面的Siamese网络,说起Siamese网络真是一把辛酸一把泪啊,先让我哭一会,,,,,哭了5分钟,算了,Siamese网络的苦水等以后再倒吧,言归正传,开始train。 在caffe平台下,实现用Alexn

gybheroin的博客 1万+

深度学习Caffe实战笔记采集数据并预处理

深度学习Caffe实战笔记采集数据并预处理 采集数据并进行分类 针对自己的项目,将收集到的数据分为5类,并生成清单文件: 使用OpenCV 采集数据; #include <opencv2/opencv.hpp> #include <opencv2/highgui/highgui_c.h> #include <iostream> using namespace std; using namespace cv; //工程目录下的temp文件夹里,与.sln同级的temp

qq_22329127的博客 354

《深度学习21天实战caffe》_简单读书笔记

第5天 Caffe依赖包解析 5.1 ProtoBuffer ProtoBuffer是由Google开发的一种可以实现内存与硬盘文件交换的协议接口,Caffe源码中大量使用ProtoBuffer作为权值和模型参数的载体,例如我们训练时使用的prototext文件,训练时会首先读取改文件,获得其中特定字段的数值,并据此设置内存中模型训练时的超参数变量值,从文件读取到内存的过程就是由...

C/C++、嵌入式开发、深度学习算法、模型部署与推理优化 391

Caffe深度学习框架核心解析与实战指南

本文还有配套的精品资源,点击获取 简介:Caffe是一个高效、灵活且易用的深度学习框架,本解析将引导读者理解Caffe的基本代码结构和工作流程。文章详细介绍了Caffe的核心组件,包括数据层、计算层、网络配置文件以及Caffe的训练、推理流程,优化器,损失函数和模型部署。同时,文章还提供了对Caffe源码深入理解的指导,涵盖了线程管理、内存优化和CUDA/CUDNN加速等关...

weixin_35871529的博客 1883

深度学习21天实战caffe学习笔记《4 : Caffe依赖包解析》

Caffe依赖包解析1、ProtoBuffer : 从.prototxt文件读取到内存【.proto记录了模型训练所需要的超参数(eg:solver.prototxt)】caffe中把它当做权值和模型的载体(类似于txt、bin、图形化等);统一的参数方案都建立在这个参数描述文件.proto中,用.protoc编译即可,便于模块集成;跨语言(c++、java、python)安装路径不是系统默认路径...

女王の专属领地 952

深度学习_21天实战Caffe+Caffe之经典模型详解与实战 (pdf文件 带书签)

深度学习_21天实战Caffe + Caffe之经典模型详解与实战 (pdf文件 带书签) [深度学习——Caffe] 经典书籍,可学习查阅

《21天实战caffe》 读书笔记(六)

第六天 运行手写体数字识别例程 1、MNIST数据集 MNIST数据集包括60000个训练集和10000个测试集,每张图都已经进行尺寸归一化、数字居中处理,固定尺寸为28像素*28像素。 2、下载MNIST数据集 MNIST数据集可以在Caffe源码框架的data/mnist下用get_mnist.sh脚本下载。 MNIST原始数据为4个文件,数据格式描述见下图。

qq_19442771的博客 363

手把手教你用Multisim 14.2仿真一个4.4V的LDO电路(附完整仿真文件)

本文详细介绍了如何使用Multisim 14.2仿真一个4.4V的LDO电路,从环境配置、核心参数解析到电路搭建和仿真调试。通过分压电阻精确计算和瞬态响应测试,帮助读者掌握LDO电路的设计与验证技巧,并附有完整仿真文件供参考。

weixin_28738397的博客 274

XTDrone——ALOAM与3D激光雷达三维SLAM(处理没有点云和坐标系报错的问题)

本文介绍了XTDrone中配置如何在三维环境中使用A-LOAM算法配合velodyneHDL32激光雷达包括依赖包安装、代码修改和PX4系统配置,以及相关报错细节的注意事项。

weixin_45390670的博客 1325

Caffe实战笔记:一句话理解caffe的网络结构

深度学习Caffe实战笔记,一句话理解caffe的数据结构

算法之美 197

计算机组成与系统结构(第三版) 袁春风主编 课后习题答案讲解 第一、二章 计算机系统概述 数据的机器级表示

计算机组成与系统结构(第三版) 袁春风主编 课后习题答案讲解 第一、二章 计算机系统概述 数据的机器级表示

qq_73523062的博客 2086

深度学习Caffe实战笔记(11)一句话理解caffe的数据结构

Caffe的万丈高楼(Net),是按照图纸(prototxt)构建起来的,这个高楼(Net)是有一块块砖头(blob)一层一层(layer)建立起来的,然后通过SGD方法(solver)简装修(train),然后再精装修(fineturn)实现的!

gybheroin的博客 1294

深入Linux网络子系统:STMMAC驱动如何通过MDIO总线与PHY芯片“对话”

本文深入解析了Linux网络子系统中STMMAC驱动通过MDIO总线与PHY芯片的通信机制。详细介绍了MDIO总线的注册流程、PHY设备的绑定机制以及设备树配置,帮助开发者理解MAC控制器与PHY芯片的协作基础,优化网络通信性能。

weixin_26897585的博客 446

功能安全实战系列09-英飞凌TC3xx LBIST开发详解

英飞凌Tricore/LBIST开发详解

initiallizer的博客 1103

深度学习21天实战caffe学习笔记《6 : Caffe代码梳理》

Caffe代码梳理1、caffe目录结构2、caffe阅读路线:src/caffe/proto/caffe.proto          了解基本数据结构内存对象和磁盘文件的一一映射,主要由ProtoBuffer工具完成;include头文件                                理解整个框架,从基类向派生类顺藤摸瓜;.cpp和.cu文件                  ...

女王の专属领地 1070

基于ESP32和OV5640的目标检测系统

本文详细介绍了基于ESP32-S3和OV5640摄像头构建目标检测系统的完整方案。系统采用YOLOv8-Nano轻量级模型,通过INT8量化实现边缘部署,在UXGA分辨率下达到25fps帧率。文章从硬件选型、图像采集优化、模型量化部署、实时推理流水线构建等维度展开,重点解决了内存管理、电源稳定性和异常处理等嵌入式系统关键问题。该方案在资源受限条件下实现了150ms以内的端到端延迟,为物联网视觉应用提供了低成本、低功耗的解决方案,适用于智能家居、工业检测等多个场景。

reset2021的博客 329
上一篇: Caffe 初识,揭开面纱
下一篇: 爬虫总结(一)-- 爬虫基础 & python实现
Omni-Space
博客等级 码龄11年 2158粉丝 23原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值