封装度量逻辑和状态。
用法
tf.keras.metrics.Metric(
name=None, dtype=None, **kwargs
)
参数
-
name
(可选)指标实例的字符串名称。 -
dtype
(可选)度量结果的数据类型。 -
**kwargs
附加层关键字参数。
单机使用:
m = SomeMetric(...)
for input in ...:
m.update_state(input)
print('Final result:', m.result().numpy())
compile()
API 的用法:
model = tf.keras.Sequential()
model.add(tf.keras.layers.Dense(64, activation='relu'))
model.add(tf.keras.layers.Dense(64, activation='relu'))
model.add(tf.keras.layers.Dense(10, activation='softmax'))
model.compile(optimizer=tf.keras.optimizers.RMSprop(0.01),
loss=tf.keras.losses.CategoricalCrossentropy(),
metrics=[tf.keras.metrics.CategoricalAccuracy()])
data = np.random.random((1000, 32))
labels = np.random.random((1000, 10))
dataset = tf.data.Dataset.from_tensor_slices((data, labels))
dataset = dataset.batch(32)
model.fit(dataset, epochs=10)
由子类实现:
__init__()
:所有状态变量都应在此方法中通过调用self.add_weight()
来创建,例如:self.var = self.add_weight(...)
update_state()
:对状态变量进行所有更新,例如:self.var.assign_add(...)。result()
:计算并返返回自状态变量的度量的标量值或标量值字典。
示例子类实现:
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.cast(y_true, tf.bool)
y_pred = tf.cast(y_pred, tf.bool)
values = tf.logical_and(tf.equal(y_true, True), tf.equal(y_pred, True))
values = tf.cast(values, self.dtype)
if sample_weight is not None:
sample_weight = tf.cast(sample_weight, self.dtype)
sample_weight = tf.broadcast_to(sample_weight, values.shape)
values = tf.multiply(values, sample_weight)
self.true_positives.assign_add(tf.reduce_sum(values))
def result(self):
return self.true_positives
相关用法
- Python tf.keras.metrics.Metric.merge_state用法及代码示例
- Python tf.keras.metrics.Mean.merge_state用法及代码示例
- Python tf.keras.metrics.Mean用法及代码示例
- Python tf.keras.metrics.MeanSquaredLogarithmicError用法及代码示例
- Python tf.keras.metrics.MeanSquaredError用法及代码示例
- Python tf.keras.metrics.MeanIoU.merge_state用法及代码示例
- Python tf.keras.metrics.MeanMetricWrapper用法及代码示例
- Python tf.keras.metrics.MeanAbsoluteError用法及代码示例
- Python tf.keras.metrics.MeanTensor用法及代码示例
- Python tf.keras.metrics.MeanMetricWrapper.merge_state用法及代码示例
- Python tf.keras.metrics.MeanAbsolutePercentageError.merge_state用法及代码示例
- Python tf.keras.metrics.MeanAbsoluteError.merge_state用法及代码示例
- Python tf.keras.metrics.MeanSquaredError.merge_state用法及代码示例
- Python tf.keras.metrics.MeanRelativeError用法及代码示例
- Python tf.keras.metrics.MeanSquaredLogarithmicError.merge_state用法及代码示例
- Python tf.keras.metrics.MeanIoU用法及代码示例
- Python tf.keras.metrics.MeanRelativeError.merge_state用法及代码示例
- Python tf.keras.metrics.MeanTensor.merge_state用法及代码示例
- Python tf.keras.metrics.MeanAbsolutePercentageError用法及代码示例
- Python tf.keras.metrics.Hinge用法及代码示例
注:本文由纯净天空筛选整理自tensorflow.org大神的英文原创作品 tf.keras.metrics.Metric。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。