【发布时间】:2022-08-20 00:07:48
【问题描述】:
class BinaryTruePositives(tf.keras.metrics.Metric):
def __init__(self, name=\'binary_true_positives\', **kwargs):
super(BinaryTruePositives, self).__init__(name=name, **kwargs)
self.true_positives = self.add_weight(name=\'tp\', initializer=\'zeros\')
def update_state(self, y_true, y_pred, sample_weight=None):
y_true = tf.squeeze(y_true)
y_pred = tf.sign(y_pred)
y_pred=tf.reshape(y_pred,[-1])
self.true_positives.assign_add(tf.keras.backend.mean(tf.keras.backend.equal(y_true,
y_pred)))
def result(self):
return self.true_positives
def reset_states(self):
self.true_positives.assign(0)
def model_fn():
keras_model = create_keras_model()
return tff.learning.from_keras_model(keras_model,
input_spec=preprocessed_example_dataset.element_spec,
loss=tf.keras.losses.MSE,
metrics=[BinaryTruePositives()])
TypeError: Expected tensorflow.python.keras.losses.Loss or collections.abc.Sequence, found function.
标签: python tensorflow keras tensorflow-federated