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

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

2 ответа

Как генерируются начальные веса, зависит от конкретной реализации <tcode id="4337562"></tcode>у вас есть руки. С помощью <tcode id="4337563"></tcode>, эти веса будут идентичны весам, возвращаемым при вызове <tcode id="4337564"></tcode>.

Однако вы контролируете эту семантику, если хотите.

Например, веса можно загрузить с диска:

      @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)

Спасибо за ответ, не могу просто позвонить load_modelПокажи фокус? нравится:

      def create_keras_model():
    baseModel = tf.keras.models.load_model('model.h5')
    ...
   return model
def model_fn()
...
   return tff.learning.from_keras_model...

iterative_process = tff.learning.build_federated_averaging_process(model_fn...)

state = iterative_process.initialize()
Другие вопросы по тегам