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

No data read from hdf5 in caffe prototxt

我正在尝试通过喂入一个 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 prototxt 更改为:

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()

但是,这让我在矩阵中全为零。 知道如何解决吗?

赞赏!

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