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

Штраф на веса в TensorFlow

Большие веса иногда мешают обобщению. Их ограничивают регуляризатором: к основной ошибке прибавляют штраф за величину коэффициентов. Для суммы квадратов весов берут функцию l2 из модуля регуляризаторов.

Создадим штраф с коэффициентом 0.01 и передадим его полносвязному слою через аргумент kernel_regularizer:

import tensorflow as tf penalty = tf.keras.regularizers.l2(0.01) layer = tf.keras.layers.Dense( 2, kernel_regularizer=penalty ) print(penalty.l2) # выведет 0.01

В функциональной модели штраф вешают на нужный блок, затем обучают как обычно. Средний квадрат и спуск те же, эпохи ограничим двумя:

import tensorflow as tf tf.keras.utils.set_random_seed(0) inp = tf.keras.Input(shape=(1,)) out = tf.keras.layers.Dense( 1, kernel_regularizer=tf.keras.regularizers.l2( 0.01 ), )(inp) model = tf.keras.Model(inp, out) model.compile( optimizer=tf.keras.optimizers.SGD( learning_rate=0.1 ), loss=tf.keras.losses.MeanSquaredError(), ) features = tf.constant( [[0.0], [1.0], [2.0]] ) targets = tf.constant( [[0.0], [1.0], [2.0]] ) model.fit( features, targets, epochs=2, verbose=2 ) # последняя строка loss: 0.4613

Задайте полносвязный блок на 3 нейрона со штрафом 0.001 на матрицу весов. Выведите коэффициент штрафа из объекта регуляризатора.

Соберите одновходовую модель с одним выходом и штрафом 0.05 на веса единственного блока. Подготовьте её к обучению со средним квадратом и спуском.

Обучите модель с штрафом 0.02 на двух строках [1.0] и [2.0] с ответами 2.0 и 4.0 две эпохи и выведите ход обучения.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить