Метод add_metric класса Layer
Метод add_metric класса Layer добавляет метрику,
значение которой будет отслеживаться во время обучения модели.
Первым параметром передается значение метрики (обычно тензор),
вторым - имя метрики. Метод часто используется внутри метода
call при создании пользовательских слоев.
Синтаксис
layer.add_metric(value, [name])
Пример
Давайте создадим пользовательский слой, который добавляет метрику среднего значения входных данных:
import tensorflow as tf
class MyLayer(tf.keras.layers.Layer):
def __init__(self):
super(MyLayer, self).__init__()
def call(self, inputs):
mean_val = tf.reduce_mean(inputs)
self.add_metric(mean_val, name='mean_metric')
return inputs
layer = MyLayer()
t = tf.constant([1, 2, 3, 4, 5], dtype=tf.float32)
res = layer(t)
print(res)
Результат выполнения кода:
tf.Tensor([1. 2. 3. 4. 5.], shape=(5,), dtype=float32)
Пример
Давайте проверим, что метрика действительно добавлена в слой:
import tensorflow as tf
class MyLayer(tf.keras.layers.Layer):
def __init__(self):
super(MyLayer, self).__init__()
def call(self, inputs):
mean_val = tf.reduce_mean(inputs)
self.add_metric(mean_val, name='mean_metric')
return inputs
layer = MyLayer()
t = tf.constant([1, 2, 3, 4, 5], dtype=tf.float32)
_ = layer(t)
print(layer.metrics)
Результат выполнения кода:
[<MeanMetricWrapper object at ...>]
Смотрите также
-
класс
Layer,
который является базовым классом для всех слоев -
метод
add_loss,
который добавляет потерю в слой -
метод
add_weight,
который добавляет вес в слой -
метод
call,
который определяет логику прямого прохода слоя