Доступ к потере клиентов при наличии моделей keras tff NN - PullRequest
1 голос
/ 14 июня 2019

Я безуспешно пытаюсь получить убытки всех клиентов в тензорной модели. Ответ на пост как печатать локальные выходные данные в объединения tenorflow? предлагает создать нашу модель NN с нуля. Однако у меня уже есть модель keras NN. Так есть ли способ получить доступ к локальным потерям клиентов, не создавая NN с нуля?

Я пытался использовать tff.federated_collect (), но не уверен, как это возможно.

Это отчасти моя попытка:

    trainer_Itr_Process = tff.learning.build_federated_averaging_process(model_fn_Federated,server_optimizer_fn=(lambda : tf.keras.optimizers.SGD(learning_rate=learn_rate)),client_weight_fn=None)
    FLstate = trainer_Itr_Process.initialize()

    @tff.learning.Model
    def federated_output_computation():
        return{
            'num_examples': tff.federated_sum(metrics.num_examples),
            'loss': tff.federated_mean(metrics.loss, metrics.num_examples),
            'accuracy': tff.federated_mean(metrics.accuracy, metrics.num_examples),
            'per_client/num_examples': tff.federated_collect(metrics.num_examples),
            'per_client/loss': tff.federated_collect(metrics.loss),
            'per_client/accuracy': tff.federated_collect(metrics.accuracy),
            }

Это ошибка, которую я получил:

   @tff.learning.Model
TypeError: object() takes no parameters

1 Ответ

0 голосов
/ 14 июня 2019

tff.learning.Model не является декоратором для функций, это интерфейс класса, используемый модулем tff.learning.

Вероятно, лучший способ изменить реализацию tff.learning.Model.federated_output_computation(что рекомендовано в , как печатать локальные выходные данные в объединении tenorflow? ) - создать собственный подкласс tff.learning.Model, который реализует другое свойство federated_output_computation.Это было бы близко к повторной реализации tff.learning.from_keras_model(), за исключением предоставления пользовательского агрегирования метрик;так что рассмотрение реализации ( здесь ) может быть полезным, но принятие моделей Keras на данный момент нетривиально.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...