如何修改这个联合学习面部表情识别代码?(colab)

时间:2021-06-15 20:13:32

标签: python machine-learning keras federated-learning

我是联邦学习的新手,我尝试为HAR实现FL的代码,但我看不懂这一行

我对一些细节部分感到困惑。 我正在尝试在 Keras 中构建一个顺序模型,但是当我训练模型时,出现此错误,我该如何解决? 请指导我。 谢谢

https://github.com/mikemikezhu/federated-learning-facial-expression-recognition



**********************************

    NEW ERROR:
    18 june 2021
    import tensorflow_federated as tff

# Create dummy batch
dummy_batch = tf.nest.map_structure(lambda x: x.numpy(), iter(federated_data_client_1[0]).next())
print(dummy_batch['x'].shape)

input_spec = tf.nest.map_structure(
    tf.TensorSpec.from_tensor,
    [tf.convert_to_tensor(x_train), tf.convert_to_tensor(y_train)

import tensorflow_federated as tff

# Create dummy batch
dummy_batch = tf.nest.map_structure(lambda x: x.numpy(), iter(federated_data_client_1[0]).next())
print(dummy_batch['x'].shape)

def model_fn():
  # We _must_ create a new model here, and _not_ capture it from an external
  # scope. TFF will call this within different graph contexts.
  keras_model = create_keras_model()
  return tff.learning.from_keras_model(
      keras_model,
      loss,
      dummy_batch,
      input_spec,
      metrics)

# Build federated average process
trainer = tff.learning.build_federated_averaging_process(model_fn,client_optimizer_fn=lambda: tf.keras.optimizers.SGD(learning_rate=0.02))
    
# Create initial state
train_state = trainer.initialize()

ValueError                                Traceback (most recent call last)

<ipython-input-242-8b3d0a25c79b> in <module>()
      1 # Build federated average process
----> 2 trainer = tff.learning.build_federated_averaging_process(model_fn,client_optimizer_fn=lambda: tf.keras.optimizers.SGD(learning_rate=0.02))
      3 
      4 # Create initial state
      5 train_state = trainer.initialize()

4 frames

/usr/local/lib/python3.7/dist-packages/tensorflow_federated/python/learning/keras_utils.py in from_keras_model(keras_model, loss, input_spec, loss_weights, metrics)
     99   py_typecheck.check_type(keras_model, tf.keras.Model)
    100   if keras_model._is_compiled:  # pylint: disable=protected-access
--> 101     raise ValueError('`keras_model` must not be compiled')
    102 
    103   # Validate and normalize `loss` and `loss_weights`

ValueError: `keras_model` must not be compiled
 

0 个答案:

没有答案