Caffe系列(1):数据层及参数

caffe之prototxt解析 要运行caffe,需要先创建一个模型(model),如比较常用的Lenet,Alex等, 而一个模型由多个屋(layer)构成,每一屋又由许多参数组成。所有的参数都定义在caffe.proto这个文件中。要熟练使用caffe,最重要的就是学会配置文件(prototxt)的编写。 层有很多种类型,比如Data,Convolution,Pooling等,层之间的数据流动是以Blobs的方式进行。 ... 阅读详情

要运行caffe,需要先创建一个模型(model),如比较常用的Lenet,Alex等, 而一个模型由多个屋(layer)构成,每一屋又由许多参数组成。所有的参数都定义在caffe.proto这个文件中。要熟练使用caffe,最重要的就是学会配置文件(prototxt)的编写。

层有很多种类型,比如Data,Convolution,Pooling等,层之间的数据流动是以Blobs的方式进行。

今天我们就先介绍一下数据层.

数据层是每个模型的最底层,是模型的入口,不仅提供数据的输入,也提供数据从Blobs转换成别的格式进行保存输出。通常数据的预处理(如减去均值, 放大缩小, 裁剪和镜像等),也在这一层设置参数实现。

数据来源可以来自高效的数据库(如LevelDB和LMDB),也可以直接来自于内存。如果不是很注重效率的话,数据也可来自磁盘的hdf5文件和图片格式文件。

所有的数据层的都具有的公用参数:先看示例

[cpp]  view plain  copy
  1. layer {  
  2.   name: "cifar"  
  3.   type: "Data"  
  4.   top: "data"  
  5.   top: "label"  
  6.   include {  
  7.     phase: TRAIN  
  8.   }  
  9.   transform_param {  
  10.     mean_file: "examples/cifar10/mean.binaryproto"  
  11.   }  
  12.   data_param {  
  13.     source: "examples/cifar10/cifar10_train_lmdb"  
  14.     batch_size: 100  
  15.     backend: LMDB  
  16.   }  
  17. }  
name: 表示该层的名称,可随意取

type: 层类型,如果是Data,表示数据来源于LevelDB或LMDB。根据数据的来源不同,数据层的类型也不同(后面会详细阐述)。一般在练习的时候,我们都是采用的LevelDB或LMDB数据,因此层类型设置为Data。

top或bottom: 每一层用bottom来输入数据,用top来输出数据。如果只有top没有bottom,则此层只有输出,没有输入。反之亦然。如果有多个 top或多个bottom,表示有多个blobs数据的输入和输出。

data 与 label: 在数据层中,至少有一个命名为data的top。如果有第二个top,一般命名为label。 这种(data,label)配对是分类模型所必需的。

include: 一般训练的时候和测试的时候,模型的层是不一样的。该层(layer)是属于训练阶段的层,还是属于测试阶段的层,需要用include来指定。如果没有include参数,则表示该层既在训练模型中,又在测试模型中。

Transformations: 数据的预处理,可以将数据变换到定义的范围内。如设置scale为0.00390625,实际上就是1/255, 即将输入数据由0-255归一化到0-1之间

其它的数据预处理也在这个地方设置:

[cpp]  view plain  copy
  1. transform_param {  
  2.     scale: 0.00390625  
  3.     mean_file_size: "examples/cifar10/mean.binaryproto"  
  4.     # 用一个配置文件来进行均值操作  
  5.     mirror: 1  # 1表示开启镜像,0表示关闭,也可用ture和false来表示  
  6.     # 剪裁一个 227*227的图块,在训练阶段随机剪裁,在测试阶段从中间裁剪  
  7.     crop_size: 227  
  8.   }  

后面的data_param部分,就是根据数据的来源不同,来进行不同的设置。

1、数据来自于数据库(如LevelDB和LMDB)

  层类型(layer type):Data

必须设置的参数:

  source: 包含数据库的目录名称,如examples/mnist/mnist_train_lmdb

  batch_size: 每次处理的数据个数,如64

可选的参数:

  rand_skip: 在开始的时候,路过某个数据的输入。通常对异步的SGD很有用。

  backend: 选择是采用LevelDB还是LMDB, 默认是LevelDB.

示例:

[cpp]  view plain  copy
  1. layer {  
  2.   name: "mnist"  
  3.   type: "Data"  
  4.   top: "data"  
  5.   top: "label"  
  6.   include {  
  7.     phase: TRAIN  
  8.   }  
  9.   transform_param {  
  10.     scale: 0.00390625  
  11.   }  
  12.   data_param {  
  13.     source: "examples/mnist/mnist_train_lmdb"  
  14.     batch_size: 64  
  15.     backend: LMDB  
  16.   }  
  17. }  

2、数据来自于内存

层类型:MemoryData

必须设置的参数:

 batch_size:每一次处理的数据个数,比如2

 channels:通道数

  height:高度

   width: 宽度

示例:

[cpp]  view plain  copy
  1. layer {  
  2.   top: "data"  
  3.   top: "label"  
  4.   name: "memory_data"  
  5.   type: "MemoryData"  
  6.   memory_data_param{  
  7.     batch_size: 2  
  8.     height: 100  
  9.     width: 100  
  10.     channels: 1  
  11.   }  
  12.   transform_param {  
  13.     scale: 0.0078125  
  14.     mean_file: "mean.proto"  
  15.     mirror: false  
  16.   }  
  17. }  
3、数据来自于HDF5

层类型:HDF5Data

必须设置的参数:

source: 读取的文件名称

batch_size: 每一次处理的数据个数

示例:

[cpp]  view plain  copy
  1. layer {  
  2.   name: "data"  
  3.   type: "HDF5Data"  
  4.   top: "data"  
  5.   top: "label"  
  6.   hdf5_data_param {  
  7.     source: "examples/hdf5_classification/data/train.txt"  
  8.     batch_size: 10  
  9.   }  
  10. }  

4、数据来自于图片

层类型:ImageData

必须设置的参数:

  source: 一个文本文件的名字,每一行给定一个图片文件的名称和标签(label)

  batch_size: 每一次处理的数据个数,即图片数

可选参数:

  rand_skip: 在开始的时候,路过某个数据的输入。通常对异步的SGD很有用。

  shuffle: 随机打乱顺序,默认值为false

  new_height,new_width: 如果设置,则将图片进行resize

 示例:

[cpp]  view plain  copy
  1. layer {  
  2.   name: "data"  
  3.   type: "ImageData"  
  4.   top: "data"  
  5.   top: "label"  
  6.   transform_param {  
  7.     mirror: false  
  8.     crop_size: 227  
  9.     mean_file: "data/ilsvrc12/imagenet_mean.binaryproto"  
  10.   }  
  11.   image_data_param {  
  12.     source: "examples/_temp/file_list.txt"  
  13.     batch_size: 50  
  14.     new_height: 256  
  15.     new_width: 256  
  16.   }  
  17. }  

5、数据来源于Windows

层类型:WindowData

必须设置的参数:

  source: 一个文本文件的名字

  batch_size: 每一次处理的数据个数,即图片数

示例:

[cpp]  view plain  copy
  1. layer {  
  2.   name: "data"  
  3.   type: "WindowData"  
  4.   top: "data"  
  5.   top: "label"  
  6.   include {  
  7.     phase: TRAIN  
  8.   }  
  9.   transform_param {  
  10.     mirror: true  
  11.     crop_size: 227  
  12.     mean_file: "data/ilsvrc12/imagenet_mean.binaryproto"  
  13.   }  
  14.   window_data_param {  
  15.     source: "examples/finetune_pascal_detection/window_file_2007_trainval.txt"  
  16.     batch_size: 128  
  17.     fg_threshold: 0.5  
  18.     bg_threshold: 0.5  
  19.     fg_fraction: 0.25  
  20.     context_pad: 16  
  21.     crop_mode: "warp"  
  22.   }  
  23. }  
前端OFD文件预览(vue案例cafe-ofd) 阅读详情

相关推荐

Caffe学习(四)数据层及参数设置

caffe的各种数据层在caffe.proto文件中有定义。通过对定义的caffe.proto文件进行编译,产生支持各种层操作的c++代码。后面将会详细解读caffe.proto文件(在caffe里就是当做一个自动代码生成工具来用)。 本文主要介绍caffe可以读入数据的各种格式,方便后面采用caffe训练自己的数据 数据的来源主要有以下几种: (1)高效的数据库(LevelDB或者LM

BryantLJ学习的地方 4万+

Caffe学习系列(2):数据层及参数

要运行caffe,需要先创建一个模型(model),如比较常用的Lenet,Alex等, 而一个模型由多个屋(layer)构成,每一屋又由许多参数组成。所有的参数都定义在caffe.proto这个文件中。要熟练使用caffe,最重要的就是学会配置文件(prototxt)的编写。 层有很多种类型,比如Data,Convolution,Pooling等,层之间的数据流动是以Blobs的方式进行。 ...

weixin_34096182的博客 570

caffe学习笔记(1):数据层定义

caffe中数据层的定义,主要有五种定义类型。

NGY 2042

解析Caffe框架的prototxt模型文件

本篇博客主要介绍`Caffe`的模型定义文件`.prototxt`及如何将`Caffe`的模型权重文件`.caffemodel`转为`PyTorch`的`.pth`。

夏小悠的博客 2338

[Caffe]:关于caffe新手入门

Caffe的几个重要文件用了这么久Caffe都没好好写过一篇新手入门的博客,最近应实验室小师妹要求,打算写一篇简单、快熟入门的科普文。 利用Caffe进行深度神经网络训练第一步需要搞懂几个重要文件: solver.prototxt train_val.prototxt train.sh 接下来我们按顺序一个个说明。solver.prototxtsolver这个文件主要存放模型训练所用到的一些超参数

cham_3 4万+

【caffe学习】一、配置文件prototxt中的数据层介绍以及caffe的数据格式

文章主要参考自: https://www.cnblogs.com/denny402/p/5070928.html https://www.cnblogs.com/denny402/p/5073427.html 1. caffe的入门介绍(blob、layer以及net) 深度网络(net)是一个组合模型,它由许多相互连接的层(layers)组合而成。Caffe就是组建深度网络的这样一种工具...

zl3090的博客 1159

ncnn报错tile not supported yet;expand not supported yet

C++推理ncnn

MY_WARNING的博客 1007

3D Slicer:从入门到精通(二)——入门指南

本篇文章包含开始使用3D Slicer所需的信息,包括如何安装和快速开始使用基本功能,以及在哪里找到更多信息。

walt3433的博客 2万+

Caffe傻瓜系列(1):数据层及参数

要运行caffe,需要先创建一个模型(model),如比较常用的Lenet,Alex等, 而一个模型由多个屋(layer)构成,每一屋又由许多参数组成。所有的参数都定义在caffe.proto这个文件中。要熟练使用caffe,最重要的就是学会配置文件(prototxt)的编写。 层有很多种类型,比如Data,Convolution,Pooling等,层之间的数据流动是以Blobs的方式进行。

深藏功与名 1万+

如何设计一个处理物联网设备数据流的后端系统。

设计一个处理物联网设备数据流的后端系统,需要综合考虑设备数据采集、传输、处理、存储等多个方面,保证系统能够处理海量数据,具备高可用性、扩展性和安全性。合理选择适当的技术架构和工具(如MQTT、Kafka、InfluxDB等),并确保系统能够灵活应对不断变化的业务需求和设备接入。

weixin_53227829的博客 839

飞塔防火墙和paloalto防火墙构建ipsec

一、配置fortigate防火墙1.防火墙配置上网功能1.1配置fortigate的wan1接口IP为100.100.100.2/24VLAN交换internal,IP地址为192.168.156.99/24。开启DHCP分配IP地址范围为192.168.156.110-192.168.156.2101.2配置访问互联网的缺省路由1.3配置访问互联网的安全策略2.配置与Paloalto防火墙的IPSECVPN。

weixin_44675999的博客 3738

Caffe学习系列(1):数据层及参数

要运行caffe,需要先创建一个模型(model),如比较常用的Lenet,Alex等, 而一个模型由多个层(layer)构成,每一层又由许多参数组成。所有的参数都定义在caffe.proto这个文件中。要熟练使用caffe,最重要的就是学会配置文件(prototxt)的编写。 层有很多种类型,比如Data,Convolution,Pooling等,层之间的数据流动是以Blobs的方式进行。

cs24k1993的博客 387

海康安防平台接口调试指南:从签名生成到Vue项目集成

本文详细解析了海康安防平台接口认证规则,从签名生成到Vue项目集成的完整流程。通过核心机制解析、签名工具使用技巧及Vue项目中的优雅集成方案,帮助开发者高效完成接口调试,避免常见问题。特别适合需要将海康安防平台接口集成到Vue项目中的开发者参考。

weixin_42533120的博客 438

caffe学习系列一数据层及参数

要运行caffe,需要先创建一个模型(model),如比较常用的Alexnet、VGG等, 而一个模型由多个屋(layer)构成,每一屋又由许多参数组成。所有的参数都定义在caffe.proto这个文件中。要熟练使用caffe,最重要的就是学会配置文件(prototxt)的编写。层有很多种类型,比如Data,Convolution,Pooling等,层之间的数据流动是以Blobs的方式进行。数据层是

zhang_shuai12的专栏 1240

代码复现5——VLMaps

报错“AttributeError: module 'clip' has no attribute 'load'”,运行下述命令解决。运行后接着报错:“ModuleNotFoundError: No module named 'pytorch_lightning'”运行后命令后会弹出一个RGB窗口,可以用键盘上的“W”“A”“D”键控制移动视角的变化,“空格”键开始记录,“q”键停止。并更改相关代码文件,vlmaps/vlmaps/lseg/modules/models/lseg_vit.py。

qq_44100524的博客 603

基于ZYNQ的HP总线与DDR交互:实现PL与PS高效数据传输的完整指南

本文将深入探讨如何通过AXI HP总线实现PL与PS的DDR交互,结合代码示例、硬件配置与创新优化,助力开发者掌握这一关键技术。ZYNQ内部通过AXI HP接口直接连接PL与DDR控制器,PL通过AXI协议发送读写请求,绕过PS的CPU直接操作DDR。通过AXI HP总线实现PL与PS的DDR交互,开发者可充分发挥ZYNQ异构架构的优势。在Xilinx ZYNQ系列芯片中,PS(Processing System)与PL(Programmable Logic)的协同设计是其核心优势。

QQ_778132974的博客 1223

1、Caffe数据层及参数

  要运行Caffe,需要先创建一个模型(model),每个模型由许多个层(layer)组成,每个层又都有自己的参数, 而网络模型和参数配置的文件分别是:caffe.prototxt,caffe.solver.prototxt文件。   所以要熟练使用caffe最重要的是学会配置文件(prototxt)文件 caffe的层有很多种,比如Data ,Convolution,Poolin...

aiyiguan4623的博客 126

分享6款文字语音生成驱动虚拟数字人说话的开源项目

对定性和定量结果的大量实验表明,我们的算法实现了高质量的照片真实感对话头部视频,包括根据语音节奏进行的各种面部表情和头部运动,并超过了最先进的水平。我们的系统包含三个阶段。当然,FACEGOOD Audio2face 部分也可根据自己的喜好进行重新训练,比如你想用自己的声音或其它类型的声音,或者不同于 FACEGOOD 使用的模型绑定作为驱动数据,都可以根据下面提到的流程完成自己专属的动画驱动算法模型训练。兼顾生成的韵律和外表的相似,除了面部,考虑到了头部的动作,虑了背景区域的artifact。

南七小僧的学海无涯 3050

caffe data层_1、Caffe数据层及参数

要运行Caffe,需要先创建一个模型(model),每个模型由许多个层(layer)组成,每个层又都有自己的参数,而网络模型和参数配置的文件分别是:caffe.prototxt,caffe.solver.prototxt文件。所以要熟练使用caffe最重要的是学会配置文件(prototxt)文件 caffe的层有很多种,比如Data ,Convolution,Pooling等,层之间的数据流动是以...

weixin_39959236的博客 109

MIPI C-PHY介绍(Specification for C-PHY V1.2)

本文档描述了一个名为C-PHY的高速串行接口,它在带宽有限(bandwidth limited channels,看的有人说C的含义就是channel limit)的通道上提供高吞吐量性能,用于连接到外设,包括显示器和摄像头。首先0x4fff在0x4000~0x4fff区域,则f=(0,0,0,0,0,0,1),顺序是S6~S1;最后,端到端的传输过程是什么样呢,如下图所示,16bit先转换成7个符号(每个符号3位,共21位),然后并行数据转换成串行数据,输送到符号编码器和3个线的驱动器,接收端流程相反。

qflook的博客 5876

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Caffe学习(2)——caffe中的数据层及对应参数

Caffe的运行,首先要基于一个模型(model),比较常用的模型有Lenet、AlexNet、VGG等;一个模型有多个层构成,层有许多种类型,比如数据层(Data Layers)、视觉层(Vision Layers)、激活层(Activation Layers)等,每层对应着许多参数,这些参数都定义在caffe.proto这个配置文件中。 接下来我们先介绍一下数据层。 数据层

Daisy_HJL的博客 1084

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

Caffe数据层参数详解

一、简介 运行caffe,需要先创建一个模型(model),如比较常用的Lenet等, 而一个模型由多个屋(layer)构成,每一屋又由许多参数组成。所有的参数都定义在caffe.prototxt这个文件中。要熟练使用caffe,最重要的就是学会配置文件(prototxt)的编写。 层有很多种类型,比如Data,Convolution,Pooling等,层之间的数据...

JACK_YOUNG007的博客 420

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

caffe data层_Caffe学习系列(2):数据层及参数

要运行caffe,需要先创建一个模型(model),如比较常用的Lenet,Alex等, 而一个模型由多个屋(layer)构成,每一屋又由许多参数组成。所有的参数都定义在caffe.proto这个文件中。要熟练使用caffe,最重要的就是学会配置文件(prototxt)的编写。层有很多种类型,比如Data,Convolution,Pooling等,层之间的数据流动是以Blobs的方式进行。今天我们...

weixin_39980082的博客 105
上一篇: caffe数据格式(Google Protocol Buffers)
下一篇: Caffe系列(2):视觉层(Vision Layers)及参数
2014wzy
博客等级 码龄13年 759粉丝 85原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值