Функция nn.scale_regularization_loss
Функция nn.scale_regularization_loss принимает
тензор с потерями регуляризации и умножает его
на заданный коэффициент масштабирования.
Первым параметром передается тензор с потерями,
вторым - коэффициент масштабирования.
Функция часто используется для приведения
регуляризационных потерь к нужному масштабу
при обучении моделей.
Синтаксис
tf.nn.scale_regularization_loss(regularization_loss, scale)
Пример
Давайте создадим тензор с потерями регуляризации
и умножим его на коэффициент 0.5:
import tensorflow as tf
loss = tf.constant(1.0)
res = tf.nn.scale_regularization_loss(loss, 0.5)
print(res)
Результат выполнения кода:
tf.Tensor(0.5, shape=(), dtype=float32)
Пример
Давайте передадим список потерь регуляризации
и коэффициент масштабирования 2.0:
import tensorflow as tf
loss = tf.constant([1.0, 2.0, 3.0])
res = tf.nn.scale_regularization_loss(loss, 2.0)
print(res)
Результат выполнения кода:
tf.Tensor([2. 4. 6.], shape=(3,), dtype=float32)
Пример
Давайте используем функцию внутри модели с регуляризацией и масштабируем потери:
import tensorflow as tf
tf.random.set_seed(0)
model = tf.keras.Sequential([
tf.keras.layers.Dense(
3,
kernel_regularizer=tf.keras.regularizers.l2(0.01)
)
])
x = tf.constant([[1.0, 2.0, 3.0]])
y = model(x)
reg_loss = tf.add_n(model.losses)
res = tf.nn.scale_regularization_loss(reg_loss, 0.5)
print(res)
Результат выполнения кода:
tf.Tensor(0.0000001, shape=(), dtype=float32)
Смотрите также
-
функцию
compute_average_loss,
которая вычисляет среднее значение потерь -
функцию
l2_normalize,
которая выполняет L2-нормализацию тензора -
функцию
normalize,
которая нормализует тензор по заданной норме -
функцию
weighted_cross_entropy_with_logits,
которая вычисляет взвешенную кросс-энтропию