caffe net получает следующую партию из слоя hdf5 - PullRequest
1 голос
/ 25 июня 2019

Я использую Python-интерфейс Caffe для тестирования моей обученной сети:

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 указывает на файл .h5, который содержит 20 изображений, т.е. 20x3x100x100.

Однако, когда я печатаю форму объекта «данные», я вижу только одно изображение.

net.blobs["data"].data.shape получается 1x3x100x100

Может ли параметр batch_size связываться с ним? Или есть другой способ инициализации сети?

Спасибо

1 Ответ

0 голосов
/ 27 июня 2019

Уровень данных, который вы определили, использует batch_size: 1. Это означает, что ваша сеть обрабатывает одно изображение за раз независимо от количества изображений в тестовом наборе .Если вы хотите, чтобы он считывал все 20 изображений одновременно, вам нужно определить batch_size слоя данных равным 20.

...