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.
我正在使用 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.