Я бы хотел провести некоторое обучение с помощью стека NiftyNet, так как мой набор помеченных изображений довольно мал.В TensorFlow это возможно - я могу загружать различные предварительно обученные сети и напрямую работать с их слоями.Чтобы настроить сеть, я мог бы заморозить обучение промежуточных слоев и обучить только последний слой, или я мог бы просто использовать выходные данные промежуточных слоев в качестве вектора объектов для передачи в другой классификатор.
Какя делаю это в NiftyNet?Единственное упоминание «передачи обучения» в документации или исходном коде относится к модели зоопарка, но для моей задачи (классификация изображений) в зоопарке нет доступных сетей.Архитектура ResNet, кажется, реализована и доступна для использования, но, насколько я могу судить, она еще ни на чем не обучена.Кроме того, кажется, что я могу обучить сеть только путем запуска net_classify train
, используя различные параметры конфигурации TRAIN
в файле конфигурации, ни у одного из которых нет параметров для замораживания сетей.Различные слои в niftynet.layer
также, похоже, не имеют опций, позволяющих их обучать или нет.
Полагаю, у меня есть следующие вопросы:
- Можно ли портировать через предварительно обученную сеть TensorFlow?
- Если я вручную воссоздаю архитектуру слоев в NiftyNet, есть ли способ импортировать веса из предварительно обученной сети TF?
- Как получить доступ к промежуточномувеса и слои модели?( Как я могу получить доступ к промежуточным картам активации предварительно обученных моделей в NiftyNet? относится к модельному зоопарку, где их можно получить, используя
net_download
, но не к какой-либо произвольной модели) * - Кроме того, кажется, что скорость обучения является постоянной величиной - чтобы изменить это со временем, пришлось бы мне запускать сеть для некоторого числа итераций, изменить
lr
, а затем возобновить обучение с последней контрольной точки?