1、Input layer

Input layer用在deploy文件测试模型效果,需要代码中手动指定网络输入数据,唯一的参数BlobShape设定输入数据的维度

caffe.proto中定义如下:

message InputParameter {// This layer produces N >= 1 top blob(s) to be assigned manually.// Define N shapes to set a shape for each top.// Define 1 shape to set the same shape for every top.// Define no shape to defer to reshaping manually.repeated BlobShape shape = 1;
}

prototxt文件定义如下:

layer {name:"data"    #设定当前layer名称为datatype:"Input"   #设置当前layer类型为Inputtop:"data"     #设置当前layer输出blob名称为data#定义输入数据维度为 batchsize =1 channel=1 height=42 dim=42input_param {shape: {dim: 1 dim: 1 dim: 42 dim:42}}
}

python读取图片输入NET代码如下:

#创建神经网络
net = caffe.Net(net_file, weight_file, caffe.TEST)#指定caffe数据转换器data的shape等于神经网络data层shape
transformer = caffe.io.Transformer({'data':net.blobs['data'].data.shape})#指定交换维度,caffe读取的图片是H*W*C,交换后变成C*H*W
transformer.set_transpose('data', (2,0,1))    #指定减去均值,np.load(mean_file)返回数据格式channel0数据:channel1数据:channel2数据
#mean(1).mean(1)返回每个通道的均值
transformer.set_mean('data', np.load(mean_file).mean(1).mean(1))#caffe.io.load_image()读进来是RGB格式和(0,1)(float)
#cv2.imread()读进来直接是BGR格式和(0,255)
#这里是将RGB变换到BGR
transformer.set_chanenl_swap('data', (2,1,0))
#这里是将图像数据变成(0,255),注释掉该行代码表示使用(0,1)的数据
transformer.set_raw_scale('data',255)#读取图片
im=caffe.io.load_image(image_path, 0)
#转换器转换数据,并赋值给net的data层
net.blobs['data'].data[...] = transformer.preprocess('data', im)
out = net.forward()

2、Data Layer层

指定Net中输入数据为LEVELDB或者LMDB

message DataParameter {enum DB {LEVELDB = 0;LMDB = 1;}//------------这些都是data层本身的参数设定data_param// Specify the data source.//指定数据文件路径optional string source = 1;    // Specify the batch size.//指定batch size 大小optional uint32 batch_size = 4;// The rand_skip variable is for the data layer to skip a few data points// to avoid all asynchronous sgd clients to start at the same point. The skip// point would be set as rand_skip * rand(0,1). Note that rand_skip should not// be larger than the number of keys in the database.// DEPRECATED. Each solver accesses a different subset of the database.optional uint32 rand_skip = 7 [default = 0];//指定数据类型,默认是LEVELDBoptional DB backend = 8 [default = LEVELDB];//------之后是数据增强的参数设置,transform_param// DEPRECATED. See TransformationParameter. For data pre-processing, we can do// simple scaling and subtracting the data mean, if provided. Note that the// mean subtraction is always carried out before scaling.optional float scale = 2 [default = 1]; //设置均值文件路径optional string mean_file = 3;// DEPRECATED. See TransformationParameter. Specify if we would like to randomly// crop an image.//指定裁剪后图片的大小optional uint32 crop_size = 5 [default = 0];// DEPRECATED. See TransformationParameter. Specify if we want to randomly mirror// data.//指定是否通过镜像座扩展optional bool mirror = 6 [default = false];// Force the encoded image to have 3 color channelsoptional bool force_encoded_color = 9 [default = false];// Prefetch queue (Increase if data feeding bandwidth varies, within the// limit of device memory for GPU training)optional uint32 prefetch = 10 [default = 4];
}

prototxt文件定义如下:

layer {name:"data"type:"Data"top:"data"top:"label"include {phase: TRAIN}transform_param {mirror: truecrop_size: 42mean_file: "/home/zxy/caffe/face_expression_recognition/lmdb/meantrain.binaryproto"}data_param {source: "/home/zxy/caffe/face_expression_recognition/lmdb/fer2013_train_lmdb"batch_size: 128backend: LMDB}
}

Caffe Layer 系列(一):Input层、Data层相关推荐

  1. Caffe学习系列(17):模型各层特征和过滤器可视化

    转载自: Caffe学习系列(17):模型各层特征和过滤器可视化 - denny402 - 博客园 http://www.cnblogs.com/denny402/p/5105911.html cif ...

  2. Caffe学习系列(5):其它常用层及参数

    本文讲解一些其它的常用层,包括:softmax_loss层,Inner Product层,accuracy层,reshape层和dropout层及其它们的参数配置. 1.softmax-loss so ...

  3. Caffe 学习系列

    学习列表: Google protocol buffer在windows下的编译 caffe windows 学习第一步:编译和安装(vs2012+win 64) caffe windows学习:第一 ...

  4. caffe data层_Caffe实现多标签输入,添加数据层(data layer)

    因为之前遇到了sequence learning问题(CRNN),里面涉及到一张图对应多个标签.Caffe源码本身是不支持多类标签数据的输入的. 如果之前习惯调用脚本create_imagenet.s ...

  5. Caffe学习系列(3):视觉层(Vision Layers)及参数

    所有的层都具有的参数,如name, type, bottom, top和transform_param请参看我的前一篇文章:Caffe学习系列(2):数据层及参数 本文只讲解视觉层(Vision La ...

  6. caffe layer层详解

    1.基本的layer定义,参数 1.基本的layer定义,参数 如何利用caffe定义一个网络,首先要了解caffe中的基本接口,下面分别对五类layer进行介绍 Vision Layers 可视化层 ...

  7. Caffe学习系列(16):各层权值参数可视化

    原文有更新: Caffe学习系列(16):各层权值参数可视化 - denny402 - 博客园 http://www.cnblogs.com/denny402/p/5103425.html 通过前面的 ...

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

    要运行caffe,需要先创建一个模型(model),如比较常用的Lenet,Alex等, 而一个模型由多个屋(layer)构成,每一屋又由许多参数组成.所有的参数都定义在caffe.proto这个文件 ...

  9. caffe data层_Caffe 学习:Eltwise层

    Caffe 学习:Eltwise层 Eltwise层的操作有三个:product(点乘), sum(相加减) 和 max(取大值),其中sum是默认操作. 1. PROD:按元素乘积 2. SUM:按 ...

最新文章

  1. 记录一下PyQt5界面导入Python(绕开pyqt5-tools安装失败问题)
  2. HoloLens开发手记 - 手势输入 Gesture input
  3. 解密 云HBase 冷热分离技术原理
  4. jni调用java类_JNI之C++调用Java类 —— java.lang.String
  5. UE4中Component和Subobject的区别
  6. [枚举] Jzoj P3387 终极武器
  7. Proteus:51仿真入门
  8. java类分析_java常用类系列之System
  9. html网页框架案例代码,HTML网页框架代码
  10. 【转载】数据库操作系统——Visual FoxPro 6.0安装步骤
  11. HTML——1.Sublime快捷键、HTML常用标签
  12. Excel2016 折线图
  13. 量化评价和质化评价举例_数据质量量化评价研究与实现
  14. Apache虚拟主机的实现方式
  15. URL Schemes
  16. 物理层(网线)、数据链路层(交换机)、网络层(IP协议、ARP协议、ICMP协议、路由器)、VLAN(虚拟局域网)、HSRP协议、ACL、NAT
  17. 诗词格律[4] 古体诗
  18. Y430P拆机:安装固态硬盘+内存+重装系统梳理
  19. Opencv3.0--第二篇【双阈值二值化图像】
  20. js等待异步执行完再执行,js如何让代码同步执行

热门文章

  1. Nginx缓存、静态文件缓存配置
  2. 又见block(一):block是什么?
  3. Unity 物理系统 -- 碰撞体简介(碰撞、触发条件)
  4. 正则表达式验证IP地址合法性
  5. 2022全球程序员薪资排行:中国倒数
  6. 虚拟机和双系统的优缺点
  7. 使用轻量应用服务器搭配宝塔面板搭建可道云kodbox私有云网盘的方法教程
  8. 【原创】【数论】质数判断方法汇总及证明(上-费马素性检测与卡迈克尔数)
  9. 如何开展微博营销--开展微博营销的步骤
  10. 回忆高中数学--概述“奇变偶不变,符号看象限”