These layers are meant for generic inputs so they do not do
transformations. As `transform_param` was pulled out of data layers'
proto definitions for reuse, these layers silently ignored
transformation parameters until now instead of signalling their refusal.
template <typename Dtype>
void HDF5DataLayer<Dtype>::LayerSetUp(const vector<Blob<Dtype>*>& bottom,
const vector<Blob<Dtype>*>& top) {
+ // Refuse transformation parameters since HDF5 is totally generic.
+ CHECK(!this->layer_param_.has_transform_param()) <<
+ this->type() << " does not transform data.";
// Read the source to parse the filenames.
const string& source = this->layer_param_.hdf5_data_param().source();
LOG(INFO) << "Loading list of HDF5 filenames from: " << source;
CHECK(data);
CHECK(labels);
CHECK_EQ(n % batch_size_, 0) << "n must be a multiple of batch size";
+ // Refuse transformation parameters since a memory array is totally generic.
+ CHECK(!this->layer_param_.has_transform_param()) <<
+ this->type() << " does not transform data.";
data_ = data;
labels_ = labels;
n_ = n;