【caffe学习笔记】Data Layers 数据层

来源:互联网 发布:java 时间戳 编辑:程序博客网 时间:2024/05/21 19:44
数据能过数据层进入 caffe 网络:数据层处于网络的最底层。
数据可以从高效率的数据库中读取(如LevelDB或LMDB), 可以直接从内存中读取, 若对读写效率要求不高也可以从硬盘上的HDFT文件或者普通的图片文件读取。

常见的数据预处理操作(减均值,尺度变换,随机裁剪或者镜像)可以能过设定参数TransformationParameter 来实现。


数据库 Database
  • 层类型: Data

参数
Required(必须的参数)
  • source: 数据库文件的路径
  • batch_size:网络单次输入数据的数量

Optional(可选的)
  • rand_skip: 跳过开头的 rand_skip * rand(0,1)个数据,通常在异步随机梯度下降法里使用;
  • backend [default LEVELDB]: 选择使用 LEVELDB 还是 LMDB。


内存数据 In-Memory
memory data 层直接从内存中读取数据而不用拷贝。
使用这个层时需要调用MemoryDataLayer::Reset (C++)或者Net.set_input_arrays(Python)来指定数据来源(四维按行存储的数组), 每次读取一个大小为batch-sized的数据块。
  • 层类型: MemoryData

参数
Required(必须的参数)
  • batch_size, channels, height, width: 指定从内存中读取的输入数据块的尺寸


HDF5 Input
  • 层类型: HDF5Data
参数
Required(必须的参数)
  • source: 文件路径;
  • batch_size


HDF5 Output
HDF5 output 层执行了一个与数据读取相反的操作, 它将数据写进硬盘。
  • 层类型:  HDF5Output

参数
Required(必须的参数)
  • file_name: 写入文件的路径


图像数据 Images
  • 层类型: ImageData

参数
Required(必须的参数)
  • source: text 文件的路径名,该 text 文件的每一行存储一张图片的路径名和对应的标签;
  • batch_size: 打包成 batch 的图片数量。

Optional(可选的)
  • rand_skip
  • shuffle [default false]
  • new_height, new_width: 根据设置的值,输入的图片将会被调整成给定的尺寸。


窗口 Windows
WindowData


Dummy
DummyData 主要用来开发和调试, 详细介绍见 DummyDataParameter。
0 0