Spec-Zone.ru › TensorFlow

tf.keras.Metric

Инкапсулирует логику и состояние метрики.

Просмотр псевдонимов

Основные псевдонимы

tf.keras.metrics.Metric

Псевдонимы совместимости для миграции

См. Руководство по миграции для получения дополнительной информации.

tf.compat.v1.keras.Metric

tf.keras.Metric(
    dtype=None, name=None
)
Аргументы
name (Необязательно) строковое имя экземпляра метрики.
dtype (Необязательно) тип данных результата метрики.

Пример:

m = SomeMetric(...)
for input in ...:
    m.update_state(input)
print('Final result: ', m.result())

Использование с compile() API:

model = keras.Sequential()
model.add(keras.layers.Dense(64, activation='relu'))
model.add(keras.layers.Dense(64, activation='relu'))
model.add(keras.layers.Dense(10, activation='softmax'))

model.compile(optimizer=keras.optimizers.RMSprop(0.01),
              loss=keras.losses.CategoricalCrossentropy(),
              metrics=[keras.metrics.CategoricalAccuracy()])

data = np.random.random((1000, 32))
labels = np.random.random((1000, 10))

model.fit(data, labels, epochs=10)

Подлежит реализации подклассами:

  • __init__(): Все переменные состояния должны быть созданы в этом методе, вызывая self.add_variable(), например: self.var = self.add_variable(...)
  • update_state(): Содержит все обновления переменных состояния, например: self.var.assign(...).
  • result(): Вычисляет и возвращает скалярное значение или словарь скалярных значений для метрики из переменных состояния.

Пример реализации подкласса:

class BinaryTruePositives(Metric):

    def __init__(self, name='binary_true_positives', **kwargs):
        super().__init__(name=name, **kwargs)
        self.true_positives = self.add_variable(
            shape=(),
            initializer='zeros',
            name='true_positives'
        )

    def update_state(self, y_true, y_pred, sample_weight=None):
        y_true = ops.cast(y_true, "bool")
        y_pred = ops.cast(y_pred, "bool")

        values = ops.logical_and(
            ops.equal(y_true, True), ops.equal(y_pred, True))
        values = ops.cast(values, self.dtype)
        if sample_weight is not None:
            sample_weight = ops.cast(sample_weight, self.dtype)
            sample_weight = ops.broadcast_to(
                sample_weight, ops.shape(values)
            )
            values = ops.multiply(values, sample_weight)
        self.true_positives.assign(self.true_positives + ops.sum(values))

    def result(self):
        return self.true_positives
Атрибуты
dtype
variables

Методы

add_variable

Посмотреть исходный код

add_variable(
    shape, initializer, dtype=None, aggregation='sum', name=None
)

add_weight

Посмотреть исходный код

add_weight(
    shape=(), initializer=None, dtype=None, name=None
)

from_config

Посмотреть исходный код

@classmethod
from_config(
    config
)

get_config

Посмотреть исходный код

get_config()

Возвращает сериализуемую конфигурацию метрики.

reset_state

Посмотреть исходный код

reset_state()

Сбросить все переменные состояния метрики.

Эта функция вызывается между эпохами/шагами, когда метрика оценивается во время обучения.

result

Посмотреть исходный код

result()

Вычислить текущее значение метрики.

Возвращаемое значение
Скалярный тензор или словарь скалярных тензоров.

stateless_reset_state

Посмотреть исходный код

stateless_reset_state()

stateless_result

Посмотреть исходный код

stateless_result(
    metric_variables
)

stateless_update_state

Посмотреть исходный код

stateless_update_state(
    metric_variables, *args, **kwargs
)

update_state

Посмотреть исходный код

update_state(
    *args, **kwargs
)

Накопление статистики для метрики.

__call__

Посмотреть исходный код

__call__(
    *args, **kwargs
)

Вызов self как функции.

© 2022 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 4.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/api_docs/python/tf/keras/Metric

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API