actually check status values from all HDF5 calls
authorJonathan L Long <jonlong@cs.berkeley.edu>
Mon, 26 May 2014 09:02:42 +0000 (02:02 -0700)
committerEvan Shelhamer <shelhamer@imaginarynumber.net>
Wed, 25 Jun 2014 22:09:12 +0000 (15:09 -0700)
src/caffe/layers/hdf5_data_layer.cpp
src/caffe/util/io.cpp

index d5c64f0..50863b8 100644 (file)
@@ -45,6 +45,7 @@ void HDF5DataLayer<Dtype>::LoadHDF5FileData(const char* filename) {
     file_id, "label", MIN_LABEL_DIM, MAX_LABEL_DIM, &label_blob_);
 
   herr_t status = H5Fclose(file_id);
+  CHECK_GE(status, 0) << "Failed to close HDF5 file " << filename;
   CHECK_EQ(data_blob_.num(), label_blob_.num());
   LOG(INFO) << "Successully loaded " << data_blob_.num() << " rows";
 }
index 65f8254..ff65bd6 100644 (file)
@@ -123,6 +123,7 @@ void hdf5_load_nd_dataset_helper(
   herr_t status;
   int ndims;
   status = H5LTget_dataset_ndims(file_id, dataset_name_, &ndims);
+  CHECK_GE(status, 0) << "Failed to get dataset ndims for " << dataset_name_;
   CHECK_GE(ndims, min_dim);
   CHECK_LE(ndims, max_dim);
 
@@ -131,6 +132,7 @@ void hdf5_load_nd_dataset_helper(
   H5T_class_t class_;
   status = H5LTget_dataset_info(
       file_id, dataset_name_, dims.data(), &class_, NULL);
+  CHECK_GE(status, 0) << "Failed to get dataset info for " << dataset_name_;
   CHECK_EQ(class_, H5T_FLOAT) << "Expected float or double data";
 
   blob->Reshape(
@@ -146,6 +148,7 @@ void hdf5_load_nd_dataset<float>(hid_t file_id, const char* dataset_name_,
   hdf5_load_nd_dataset_helper(file_id, dataset_name_, min_dim, max_dim, blob);
   herr_t status = H5LTread_dataset_float(
     file_id, dataset_name_, blob->mutable_cpu_data());
+  CHECK_GE(status, 0) << "Failed to read float dataset " << dataset_name_;
 }
 
 template <>
@@ -154,6 +157,7 @@ void hdf5_load_nd_dataset<double>(hid_t file_id, const char* dataset_name_,
   hdf5_load_nd_dataset_helper(file_id, dataset_name_, min_dim, max_dim, blob);
   herr_t status = H5LTread_dataset_double(
     file_id, dataset_name_, blob->mutable_cpu_data());
+  CHECK_GE(status, 0) << "Failed to read double dataset " << dataset_name_;
 }
 
 template <>