我正在尝试通过喂入包含所有内容的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()
然而,这让我在矩阵中全部为零。 关于如何解决它的任何想法?
赞赏!
答案 0 :(得分:1)
要让"HDF5Data"
图层读取它的第一批,您需要先调用net.forward()
。完成正向传递后,图层的top
会从文件中读取数据。