РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
274 of 824 menu

Атрибут losses

Атрибут losses класса Layer возвращает список тензоров потерь, которые были добавлены в слой через метод add_loss. Этот атрибут используется при построении сложных моделей, где слой может иметь собственные регуляризационные потери, не связанные напрямую с целевой функцией модели. Потери хранятся в виде тензоров и доступны после вызова слоя или после явного добавления через add_loss.

Атрибут не принимает параметров и доступен только для чтения. Он возвращает список, элементы которого являются тензорами TensorFlow. Атрибут полезен для отладки и анализа модели, а также для вычисления итоговой функции потерь в кастомных циклах обучения.

Синтаксис

layer.losses

Пример

Давайте создадим простой слой и добавим в него потерю через метод add_loss, а затем выведем содержимое атрибута losses:

import tensorflow as tf tf.random.set_seed(0) class MyLayer(tf.keras.layers.Layer): def call(self, inputs): self.add_loss(tf.reduce_mean(inputs)) return inputs layer = MyLayer() t = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0]) res = layer(t) print(layer.losses)

Результат выполнения кода:

[<tf.Tensor: shape=(), dtype=float32, numpy=3.0>]

Пример

Давайте добавим несколько потерь в слой и посмотрим, как они накапливаются в атрибуте losses:

<+python+> import tensorflow as tf tf.random.set_seed(0) class MultiLossLayer(tf.keras.layers.Layer): def call(self, inputs): self.add_loss(tf.reduce_sum(inputs)) self.add_loss(tf.reduce_mean(inputs)) self.add_loss(tf.reduce_max(inputs)) return inputs layer = MultiLossLayer() t = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0]) res = layer(t) for loss in layer.losses: print(loss) <-python+>

Результат выполнения кода:

tf.Tensor(15.0, shape=(), dtype=float32) tf.Tensor(3.0, shape=(), dtype=float32) tf.Tensor(5.0, shape=(), dtype=float32)

Пример

Давайте проверим, что атрибут losses пуст, если потери не добавлялись:

import tensorflow as tf tf.random.set_seed(0) layer = tf.keras.layers.Dense(3) t = tf.constant([[1.0, 2.0, 3.0], [4.0, 5.0, 6.0]]) res = layer(t) print(layer.losses)

Результат выполнения кода:

[]

Смотрите также

  • метод add_loss,
    который добавляет потерю в слой
  • класс Layer,
    который является базовым классом для всех слоев
  • атрибут weights,
    который хранит веса слоя
  • метод call,
    который вызывается при прямом проходе через слой
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить