I created HDF5 data using the following python script and placed HDF5 data layer. However, when I tried to train caffe using this data it keeps complaining
Check failed: num_spatial_axes_ == 2 (0 vs. 2) kernel_h & kernel_w can only be used for 2D convolution
Here is how my data looks like:
Data(1x3253), label(1x128) binary. I sliced the 128 into 16 bytes and translated that to dec to use it as a mulitlabel. So a typical key would look like, (20, 38, 123, 345,...) 1x16. and I have 1,000,000 of data like (1). For now I am just using the first byte, so I will have one integer as a label.
DIR ="/x/" h5_fn= os.path.join('/x/h5Data_train.h5') from numpy import genfromtxt dim=64000 InputData=np.arange(3253) data=np.arange(dim*3253) data.shape=(dim,3253) fileList=[os.path.join(i) for folder, subdir,files in os.walk(DIR) for i in files] for i in range(0,len(fileList)): InputData=np.genfromtxt(DIR+fileList[i], delimiter=',',skip_header=24) data[i]=InputData label=np.arange(dim) labelData=np.genfromtxt(DIR+'label_file',comments='\t',dtype=None) for i in range(0,dim): label[i]=int(labelData[i][0:2],16) print "Creating HDF5..." with h5py.File(h5_fn,'w') as f: f['InputData']=data f['label']=label text_fn=os.path.join('/x/hdf5.txt') with open(text_fn,'w') as f: f.write('h5_fn')
This script creates the HDF5, but I am suspecting that the error from caffe is related to how I created my HDF5 file. Can someone tell me if there is anything wrong on how I created the HDF5. Also, is there anyway one can check if the HDF5 file created is as you want? Thanks!