没有从caffe prototxt中的hdf5读取数据

时间:2017-10-27 04:00:16

标签: neural-network deep-learning caffe hdf5 pycaffe

我正在尝试通过喂入包含所有内容的blob来测试我的caffe模型。所以我通过以下方式形成了一个hdf5文件:

import h5py, os
import numpy as np

SIZE = 227 # fixed size to all images

X = np.ones((1, 3, SIZE, SIZE), dtype='f8')

with h5py.File('test_idty.h5','w') as H:
    H.create_dataset('img', data=X ) 
with open('test_h5_idty_list.txt','w') as L:
    L.write( '/home/wei/deep_metric/test_idty.h5' )

然后,我将我的caffe原型改为:

layer{
  name:"data"
  type:"HDF5Data"
  top:"img"
  include:{
    phase:TEST
  }
  hdf5_data_param{
    source:"/home/wei/deep_metric/test_h5_idty_list.txt"
    batch_size:1
  }
}

然后,我尝试通过以下方式确保我的数据正确输入:

net = caffe.Net(Model,Pretrained,caffe.TEST)
data = net.blobs['img'].data.copy()

然而,这让我在矩阵中全部为零。 关于如何解决它的任何想法?

赞赏!

1 个答案:

答案 0 :(得分:1)

要让"HDF5Data"图层读取它的第一批,您需要先调用net.forward()。完成正向传递后,图层的top会从文件中读取数据。