我正在使用 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
。
但是,当我打印“数据” Blob 的形状时,我只看到一张图像。
net.blobs["data"].data.shape
结果为 1x3x100x100
batch_size 参数会搞乱它吗?或者有不同的方式来初始化网络吗?
谢谢
最佳答案
您定义的数据层使用batch_size: 1
,这意味着您的网络一次处理一张图像无论测试集中的图像数量如何。如果您希望它一次读取全部20张图像,则需要将数据层的batch_size
定义为20。
关于machine-learning - caffe net 从 hdf5 层获取下一批,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56757987/