问题描述
我正在尝试使用联合代码来构建我自己的联合学习算法。但是我遇到了一个问题。在官方教程中,它定义了 Model Spec 如下:
MODEL_SPEC = collections.OrderedDict(
filter1 = tf.TensorSpec(shape=weights[0].shape,dtype=tf.float32),bias1 = tf.TensorSpec(shape=weights[1].shape,filter2 = tf.TensorSpec(shape=weights[2].shape,bias2 = tf.TensorSpec(shape=weights[3].shape,weight1 = tf.TensorSpec(shape=weights[4].shape,bias3 = tf.TensorSpec(shape=weights[5].shape,dtype=tf.float32)
)
MODEL_TYPE = tff.to_type(MODEL_SPEC)
我想知道是否需要将模型作为 OrderedDict 输入。我可以将模型输入为可训练的 Keras 模型吗?
谢谢!
解决方法
是的,TFF 可以使用 tf.keras.Model
(函数式或顺序 API,而不是子类 API)使用 tff.learning.from_keras_model
方法定义的模型。
此方法在 Federated Learning for Text Generation 和 Building Your Own Federated Learning Algorithm 教程中使用。