Я новичок в федеративном обучении, я пытался реализовать код FL для классификации изображений, но не могу понять эту строку: state = iterative_process.initialize()
, Откуда на сервере влияют веса?
Какое состояние = iterative_process.initialize () в федеративном обучении
comment
Не могли бы вы уточнить вопрос? Я не совсем понимаю. Между тем, некоторая путаница может быть связана с тем фактом, что TFF - это среда функционального программирования. Возможно, стоит прочитать tensorflow.org/federated/federated_learning#modeling_state и более подробную информацию в гид.
- person Jakub Konecny   schedule 11.03.2021
comment
Вот и хочу сказать: откуда взялось начальное состояние. означает, что как .Iterative_process генерирует начальные веса
- person seni   schedule 11.03.2021
Ответы (1)
Как генерируются начальные веса, зависит от конкретной реализации _1 _ у вас есть руки. При использовании tff.learning.build_federated_averaging_process
эти веса будут идентичны "> тех, которые были возвращены после _ofollow nore3_ocation .
Однако вы контролируете эту семантику, если хотите.
Например, веса можно загрузить с диска:
@tff.tf_computation
def get_weights_from_disk():
# load weights from wherever
return loaded_weights
@tff.federated_computation
def server_init():
# There may be state other than weights that needs to get returned from here,
# as in the implementation of build_federated_averaging_process.
return tff.federated_eval(get_weights_from_disk, tff.SERVER), ...
Затем вы можете создать новый итерационный процесс, подобный этому, если сигнатура типа функции, которую мы написали выше, соответствует типу функции инициализации в итеративном процессе, который мы пытаемся заменить:
old_iterproc = tff.learning.build_federated_averaging_process(...)
new_iterproc = tff.templates.IterativeProcess(intialize_fn=server_init,
next_fn=old_iterproc.next)
person
Keith Rush
schedule
12.03.2021