卷积神经网络的参数,卷积神经网络层结构
本文主要介绍Caffe卷积神经网络的数据层和参数实例的详细说明。有需要的朋友可以借鉴一下,希望能有所帮助。祝大家进步很大,早日升职加薪。
00-1010简介数据层1、来自数据库的数据(如LevelDB和LMDB)2、来自内存的数据3、来自HDF54的数据、来自图片的数据5、来自Windows的数据
目录
要运行caffe,需要创建一个模型,比如常用的Lenet、Alex等。而一个模型由多个层组成,每个层由许多参数组成。的所有参数都定义在文件caffe.proto中要熟练使用caffe,最重要的是学会如何编写配置文件(prototxt)。
有许多类型的层,如数据数据,卷积,池等。各层之间的数据流由Blobs完成。
引言
今天,我们先来介绍一下数据层。
数据层是每个模型的底层,也是模型的入口,不仅提供数据输入,还提供从Blobs到其他格式的数据转换,以便存储和输出。通常的数据预处理(如平均减法、放大、缩小、裁剪和镜像)也是通过在这一层设置参数来实现的。
数据可以来自高效的数据库(比如LevelDB和LMDB),也可以直接来自内存。如果效率不是很重要,数据也可以来自磁盘上的hdf5文件和图片格式文件。
所有数据层的公共参数:首先看例子。
层{
名称: cifar
键入: 数据
top: 数据
top: 标签
包括{
phase:系列
}
转换参数{
mean _ file : examples/cifar 10/mean . binary proto
}
数据参数{
source : examples/cifar 10/cifar 10 _ train _ lmdb
batch_size: 100
后端: LMDB
}
}
Name:表示这一层的名称,可以随意取。
Type:图层类型,如果是数据,说明数据来自LevelDB或者LMDB。根据数据来源的不同,数据层的类型也不同(后面详述)。在一般实践中,我们都使用LevelDB或LMDB数据,因此图层类型设置为数据。
或者顶底:每一层用底层输入数据,用顶层输出数据。如果只有上没有下,这一层只有输出没有输入。反之亦然,达拉斯到礼堂如果有一个以上的顶部或一个以上的底部,这意味着有一个以上的blobs数据的输入和输出。
在数据标签为3360的数据层中至少有一个顶级命名数据。如果有第二顶,一般命名为label。这种(数据,标签)配对对于分类模型是必要的。
Include:一般来说,训练和测试时模型的层次是不同的。该层属于训练阶段还是测试阶段需要由include指定。如果没有include参数,则意味着该层同时位于训练模型和测试模型中。
Transformations:数据预处理可以将数据转换到定义的范围内。如果将小数位数设置为0.00390625,实际上就是1/255,即输入数据从0-255归一化到0-1。
其他数据预处理也设置在这个地方:
转换参数{
比例尺0.00660605661
mean _ file _ size : examples/cifar 10/mean . binary proto
#使用配置文件进行平均。
Mirror: 1 # 1表示镜像打开,0表示镜像关闭。也可以用真假来表示。
#切一块227*227的瓷砖,训练阶段随机切,测试阶段从中间切。
crop_size: 227
}
在data_param部分的后面,根据不同的数据源进行不同的设置。
数据层
层类型):数据。
必须设置的参数:
p>source: 包含数据库的目录名称,如examples/mnist/mnist_train_lmdb
batch_size: 每次处理的数据个数,如64
可选的参数:
rand_skip: 在开始的时候,路过某个数据的输入。通常对异步的SGD很有用。
backend: 选择是采用LevelDB还是LMDB, 默认是LevelDB.
示例:
layer {name: "mnist"
type: "Data"
top: "data"
top: "label"
include {
phase: TRAIN
}
transform_param {
scale: 0.00390625
}
data_param {
source: "examples/mnist/mnist_train_lmdb"
batch_size: 64
backend: LMDB
}
}
2、数据来自于内存
层类型:MemoryData
必须设置的参数:
batch_size:每一次处理的数据个数,比如2
channels:通道数
height:高度
width: 宽度
示例:
layer {top: "data"
top: "label"
name: "memory_data"
type: "MemoryData"
memory_data_param{
batch_size: 2
height: 100
width: 100
channels: 1
}
transform_param {
scale: 0.0078125
mean_file: "mean.proto"
mirror: false
}
}
3、数据来自于HDF5
层类型:HDF5Data
必须设置的参数:
source: 读取的文件名称
batch_size: 每一次处理的数据个数
示例:
layer {name: "data"
type: "HDF5Data"
top: "data"
top: "label"
hdf5_data_param {
source: "examples/hdf5_classification/data/train.txt"
batch_size: 10
}
}
4、数据来自于图片
层类型:ImageData
必须设置的参数:
source: 一个文本文件的名字,每一行给定一个图片文件的名称和标签(label)
batch_size: 每一次处理的数据个数,即图片数
可选参数:
rand_skip:在开始的时候,路过某个数据的输入。通常对异步的SGD很有用。
shuffle: 随机打乱顺序,默认值为false
new_height,new_width: 如果设置,则将图片进行resize
示例:
layer {name: "data"
type: "ImageData"
top: "data"
top: "label"
transform_param {
mirror: false
crop_size: 227
mean_file: "data/ilsvrc12/imagenet_mean.binaryproto"
}
image_data_param {
source: "examples/_temp/file_list.txt"
batch_size: 50
new_height: 256
new_width: 256
}
}
5、数据来源于Windows
层类型:WindowData
必须设置的参数:
source: 一个文本文件的名字
batch_size: 每一次处理的数据个数,即图片数
示例:
layer {name: "data"
type: "WindowData"
top: "data"
top: "label"
include {
phase: TRAIN
}
transform_param {
mirror: true
crop_size: 227
mean_file: "data/ilsvrc12/imagenet_mean.binaryproto"
}
window_data_param {
source: "examples/finetune_pascal_detection/window_file_2007_trainval.txt"
batch_size: 128
fg_threshold: 0.5
bg_threshold: 0.5
fg_fraction: 0.25
context_pad: 16
crop_mode: "warp"
}
}
以上就是Caffe卷积神经网络数据层及参数的详细内容,更多关于Caffe数据层参数的资料请关注盛行IT软件开发工作室其它相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。