DL4J. После выполнения model.upgrade(Gradient) веса обновляются?

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

Мой вопрос в том, что в DL4J после выполнения model.update(newGradients) веса также обновляются или мне нужно выполнить что-то еще?

Спасибо


person JAC    schedule 30.10.2017    source источник


Ответы (1)


Я смог найти ответ на свой вопрос.

После обновления градиента вам необходимо обновить веса (параметры)

Если вы используете SGD, вы должны сделать что-то вроде этого:

model.update(averageGradient);
INDArray params = model.params(true);
params.addi(averageGradient.gradient());

Я надеюсь, что это поможет кому-то еще с подобной проблемой!

person JAC    schedule 01.11.2017