Федеративное обучение в Tensorflow Federated, есть ли способ применить раннюю остановку на стороне клиента?
Я использую Tensorflow Federated для обучения модели классификации текста с использованием подхода федеративного обучения. Есть ли способ применить раннюю остановку на стороне клиента? Есть ли в API возможность перекрестной проверки? Единственное, что мне удалось найти, это оценку:
evaluation = tff.learning.build_federated_evaluation(model_fn)
Что применяется к модели к концу федеративного тренировочного раунда.
Я что-то пропустил?
1 ответ
Один простой способ контролировать количество шагов, которые делает клиент при использовании <tcode id="476213"></tcode> путем настройки каждого клиента <tcode id="476214"></tcode>с разными параметрами. Например, ограничение количества шагов с помощью <tcode id="476215"></tcode>. В руководстве tf.data: Build TensorFlow input pipelines есть гораздо больше деталей.
В качестве альтернативы остановка на основе измерения прогресса обучения потребовала бы изменения некоторых внутренних компонентов алгоритма в настоящее время. Вместо использования API в
tff.learning
, может быть, проще потрогать federated / tensorflow_federated / python / examples / simple_fedavg /, в частности, здесь находится цикл обучения клиента, и его можно изменить, чтобы остановить его на основе некоторых критериев, отличных от «конца набора данных» (как в настоящее время используется).