Какое состояние = iterative_process.initialize () в федеративном обучении

Я новичок в федеративном обучении, я пытался реализовать код FL для классификации изображений, но не могу понять эту строку: state = iterative_process.initialize() , Откуда на сервере влияют веса?


person seni    schedule 11.03.2021    source источник
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