Уменьшите модель сети Caffe

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

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

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

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

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

0

Решение

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

PS,
Вы можете найти эта тема тоже актуально.

2

Другие решения

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

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

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

1

Я бы переучился на меньший размер ввода, изменения шагов и т. Д. Однако, если вы хотите уменьшить размер файла, я бы предложил квантовать веса https://github.com/yuanyuanli85/CaffeModelCompression а затем использовать что-то вроде сжатия lzma (xz для unix). Мы делаем это, чтобы мы могли развернуть на мобильных устройствах. Вес 8 бит хорошо сжимается.

0
По вопросам рекламы [email protected]