caffe net 从 hdf5 层获取下一批

caffe net get next batch from hdf5 layer

我正在使用 Caffe 的 Python 界面来测试我训练的网络:

model_def = "./test.prototxt"
model_weights = "./seg_10000.caffemodel" # contains trained weights

net = caffe.Net(model_def, model_weights, caffe.TEST)    
output = net.forward()

这仅适用于第一张图片。我的 "test.prototxt" 文件从 hdf5 格式加载数据并包含 20 张图像:

layer { top: "data" top: "label" name: "loaddata" type: "HDF5Data" hdf5_data_param { source: "/home/mmc/data.txt" batch_size: 1 } include { phase: TEST } }

data.txt 文件指向包含 20 张图像的 .h5 文件,即 20x3x100x100

然而,当我打印 "data" blob 的形状时,我只看到一张图像。

net.blobs["data"].data.shape 结果是 1x3x100x100

batch_size 参数会不会有问题?还是有其他初始化网络的方法?

谢谢

您定义的数据层使用 batch_size: 1 这意味着您的网络一次处理一张图像 无论测试集中的图像数量如何 。如果你想让它一次读取所有20张图片,你需要定义数据层的batch_size为20.