我在使用Caffe的Python接口来测试我的训练网络:
model_def = "./test.prototxt"model_weights = "./seg_10000.caffemodel" # 包含训练后的权重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。