Несколько предварительно обученных сетей в Кафе

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

Я пытаюсь добиться этого, используя NVidia DIGITS и Caffe.

РЕДАКТИРОВАТЬ: Я думал, что было бы невозможно сделать это непосредственно из ЦИФРОВ, как подтверждается ответами. Кто-нибудь может предложить простой способ изменить код DIGITS, чтобы иметь возможность выбирать несколько предварительно обученных сетей? Я немного проверил код и подумал, что учебный сценарий будет хорошим началом для начала, но я не обладаю глубокими знаниями о Caffe, поэтому я не уверен, каким будет лучший / быстрый способ достичь этого.,

2 ответа

Решение

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

Я создал запрос на извлечение данных в официальном репозитории, а затем мои изменения были объединены с основной веткой DIGITS, что означает, что теперь можно использовать эту функцию в DIGITS.

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

Другие вопросы по тегам