Какое состояние = 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()