使用hdf5作为caffe输入时出现错误:HDF5Data不转换数据

我使用hdf5文件作为caffe的输入数据时,出现了以下错误:

hdf5_data_layer.cpp:75] Check failed: !this->layer_param_.has_transform_param() HDF5Data does not transform data.

这是我的定义:

layer {  name: "weight28"  type: "HDF5Data"  include { phase : TRAIN }   transform_param { scale: 0.00392156862745098 }  hdf5_data_param {    source: "/home/zhangyu/codes/unsupervised/data/weight28.h5"    batch_size: 8  }  top: "weight28"}

这是我的h5文件的一些信息:

HDF5 weight28.h5 Group '/'     Dataset 'data'         Size:  2555000x28        MaxSize:  Infx28        Datatype:   H5T_IEEE_F64LE (double)        ChunkSize:  28x28        Filters:  none        FillValue:  0.000000

我找到一个类似的问题,答案说 你不能在hdf5data层中使用transform param。
caffe中的数据转换是做什么用的?我可以直接取消它吗?


回答:

  1. 正如你自己已经发现的,你不能在"HDF5Data"层中使用transformation_param – caffe不支持这样做。

  2. 关于转换参数本身,请查看caffe.proto

// 对于数据预处理,我们可以进行简单的缩放和减去数据均值,如果提供了的话。请注意,均值减去总是先于缩放进行。optional float scale = 1 [default = 1];

使用transform_param { scale: 0.00392156862745098 }意味着你的网络期望你的输入被0.0039..(1/254)缩放。
你可以(并且可能应该)在创建用于训练的hdf5数据文件时将其缩放1/254,然后从"HDF5Data"层中移除transform_param

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注