Я хотел бы использовать библиотеку Caffe для извлечения функций изображений, но у меня проблемы с производительностью. Я могу использовать только режим процессора. Мне сказали, что Caffe поддерживает режим пакетной обработки, в котором среднее время обработки одного изображения значительно медленнее.
Я вызываю следующий метод:
const vector<Blob<Dtype>*>&
Net::Forward(const vector<Blob<Dtype>* > & bottom, Dtype* loss = NULL);
и я добавляю вектор размера 1, содержащий один блоб следующих размеров — (число: 10, каналы: 3, ширина: 227, высота: 227). Он представляет отдельное изображение с передискретизацией так же, как в официальной оболочке Python.
Это работает и дает правильные результаты. Это, однако, слишком медленно.
Всякий раз, когда я пытаюсь отправить вектор, содержащий более одного большого двоичного объекта (одинакового размера), я получаю следующую ошибку:
F0910 16: 10: 14.848492 15615 blob.cpp: 355] Попытка скопировать BLOB-объекты разных размеров.
Проверьте трассировку стека сбоев:
Как заставить Caffe обрабатывать мои изображения в серии?
Если вы хотите кормить большими партиями, вам нужен первый (и единственный) шарик в bottom
иметь num>10
, Кормление сгустка с num=20
так же, как питание двух входов с oversample=10
, Вам, конечно, придется выполнить усреднение вручную в соответствии с oversampling
ты используешь.
Кроме того, вы можете изменить первое входное измерение в вашем deploy.prototxt
файл от 10 до большего значения (в зависимости от объема памяти вашего компьютера)