【问题标题】:Convert data to leveldb for caffe将数据转换为 caffe 的 leveldb
【发布时间】:2015-08-20 05:58:28
【问题描述】:

我在 Matlab 中有一堆二维数据矩阵(没有图像数据,但有一些单精度数据)。

有人知道如何将 2D matlab 矩阵转换为 caffe 训练自定义神经网络所需的 leveldb 格式吗?

我已经完成了关于如何训练图像(使用 imagenet 架构)和 mnist(数字识别数据集)的教程。但是在后一个示例中,他们没有展示如何创建相应的数据库。在教程中已经提供了数据库。

【问题讨论】:

  • 还没有。你自己试过吗?我只是试图用它加载一个leveldb数据库。加载似乎工作正常,但数据库似乎是空的。 (我无法显示任何键,matlab 变量只有 100 字节大,而真实数据库为 2Gb)。我的数据库包含文件“data.mdb”和“lock.mdb”。也许 caffe 使用了一些修改版本的 leveldb?
  • 为什么不使用 HDF5_DATA 层呢?更灵活...
  • @Shai:你能解释一下/举个例子吗?

标签: matlab caffe conv-neural-network leveldb matcaffe


【解决方案1】:

我仍然不知道为我的 2D 数据矩阵创建一个 leveldb 数据库以在 caffe 中使用,但我最终解决了问题:
我最终使用Shai's proposal 将数据转换为 HDF5 格式。在 Matlab 中读写 HDF5 数据库非常容易。你只需要使用 Matlab 中已经实现的函数hdf5info(),h5read(),h5create()h5write()

示例:
- 将 caffe prototxt 文件中的数据类型更改为“hdf5layer”,如下所示:

name: "LeNet"
layer {
  name: "mnist"
  type: "HDF5Data"
  top: "data"
  top: "label"
  include {
    phase: TRAIN
  }
  hdf5_data_param {
    source: "/path/to/your/database/myMnist_train.txt"
    batch_size: 64
  }
}

使用 Matlab 创建 HDF5 数据库:
- Caffe:您的输入训练数据必须是一个 4-D 矩阵,其中最后两个维度等于您在 matlab 中的 2D 输入数据矩阵的大小。
- 示例:采用大小为 54x24 (#rows x cols)
的二维矩阵(图像或单精度数据) - -> 转置它,并将其堆叠成一个 24x54x1xN 矩阵,其中 N 是 2d 矩阵(训练样本)的数量
- 标签位于 matlab 中的 1xN 行向量中。
- 现在创建你的 hdf5 数据库:

h5create(['train.h5'],'/data',[24 54 1 length(trainLabels)]);
h5create(['train.h5'],'/label',[1 length(trainLabels)]);
h5write(['train.h5'],'/data',trainData);
h5write(['train.h5'],'/label',trainLabels);
  • 如您所见,caffe 需要一个带有变量“data”和“label”的 hdf5 数据库
  • 读取数据库:
    使用 hdf5info(filename) 获取 hdf5 数据库中的数据集名称。 然后使用data = h5read(filename,dataset)读取数据集

【讨论】:

  • 太棒了!顺便说一句,您需要/path/to/your/database/myMnist_train.txt 文件来包含h5 文件名,例如,包含行:train.h5。
  • 在存储矩阵之前,是否必须将矩阵减去均值矩阵?
  • 这是你的数据,所以你现在应该如何转换它;)。通常所说的均值减法和标准差除法应始终改进数值优化。
  • 这是一个不错的选择,但不是正确的答案,因为HDF5 data layers are not fully featured。我将自己尝试找出答案,但是如果您有任何见解,那就太好了。否则,如果可以将问题更新为您实际想要的内容(Caffe 采用的任何格式),我将不胜感激,这样我就可以要求您最初提出的更具体的答案。 :\ 否则,这是非常有用的。谢谢。
猜你喜欢
  • 2016-04-08
  • 2017-11-23
  • 2017-04-04
  • 2017-03-29
  • 2020-04-16
  • 2016-12-13
  • 2017-03-20
  • 2018-04-25
  • 2015-11-19
相关资源
最近更新 更多