Увеличение входного разрешения изображения для предварительно подготовленной модели Resnet в CNTK

Я использую язык редактирования модели CNTK для загрузки предварительно обученной модели сети Resnet, добавления нового последнего слоя и уточнения модели на некотором новом наборе данных.

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

Спасибо!

ПС. Таков мой нынешний курс .mel файл выглядит как (для AlexNet):

#load pre-trained model
model1 = LoadModel("$OrigModel$") #, format=cntk)
SetDefaultModel(model1)

#parameters from original ndl file
cMap4 = 512
fcWScale = 1.13
fcBValue = 0
labelDimNew=10

#add new final layer
newL = DnnLayer(cMap4, $labelDimNew$, pool5, fcWScale, fcBValue)
labelsNew = Input($labelDimNew$, tag="label")
SetInput(ce, 0, labelsNew)
SetInput(ce, 1, newL.z)
SetInput(err, 0, labelsNew)
SetInput(err, 1, newL.z)
SetProperty(newL.z, "output", "true")

#remove old final layer (note: make sure these deletes happen in reverse order)
DeleteNode(OutputNodes.z) 
DeleteNode(OutputNodes.t)
DeleteNode(OutputNodes.b)
DeleteNode(OutputNodes.W)
DeleteNode(labels)

#rename nodes to have same name as before. this might not be necessary.
Rename(labelsNew, labels)
Rename(newL.*, OutputNodes.*)

1 ответ

  1. Одним из вариантов было бы иметь функцию адаптера, которая принимает более высокую функцию res и подключает ее выход к входу вашей предварительно обученной модели. В python это должно быть просто. Я не уверен о том, как расширить это .mel though.