2015-09-10 6 views
0

Я бы хотел использовать Caffe для извлечения функций изображения. Однако для обработки изображения требуется слишком много времени, поэтому я ищу способы оптимизации скорости.Уменьшить модель сети Caffe

Одна вещь, которую я заметил, это то, что определение сети, которое я использую, содержит четыре дополнительных слоя сверху того, из которого я читаю результат (и нет сигналов обратной связи, поэтому они должны быть безопасными для удаления).

Я попытался удалить их из файла определения, но он не имел никакого эффекта. Думаю, мне, возможно, придется удалить соответствующую часть файла, содержащую предварительно подготовленные веса. То есть, однако, двоичный файл (protobuffer), поэтому его редактирование не так просто.

Считаете ли вы, что удаление четырех слоев может иметь глубокий эффект производительности сети?

Если да, то как мне ознакомиться с содержимым файла, чтобы я мог его отредактировать и как узнать, какие части удалить?

ответ

2

Во-первых, я не думаю, что удаление бинарных весов будет иметь какой-либо эффект.
Во-вторых, вы можете сделать это легко, используя интерфейс python: см. this tutorial.
И последнее, но не менее важное: вы пробовали запустить caffe time, чтобы измерить производительность вашей сети? это может помочь вам определить узкие места ваших вычислений.

PS, Возможно, вы найдете this thread.

0

Caffemodel хранит данные в виде пары ключ-значение. Caffe только копирует вес для этих слоев (в train.prototxt), имеющих точно такое же имя, что и caffemodel. Поэтому я не думаю, что удаление бинарных весов будет работать. Если вы хотите изменить структуру сети, просто измените train.prototxt и deploy.txt.

Если вы настаиваете на удалении веса из двоичного файла, выполните следующие действия: caffe example.

И чтобы убедиться, что вы удаляете правую часть, этот visualizing tool должен помочь.

Смежные вопросы