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

Выключение части нейронов в TensorFlow

Выключение части нейронов - случайная доля ячеек на каждом шаге обнуляется, оставшиеся масштабируются так, чтобы средний уровень сигнала не падал. В Keras это класс Dropout. При создании задают долю отключаемых ячеек.

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

Создадим слой с долей 0.5, зададим фиксированный seed, сравним ответ в режиме обучения и без него:

import tensorflow as tf tf.random.set_seed(42) row = tf.constant([[1.0, 2.0, 3.0, 4.0]]) layer = tf.keras.layers.Dropout(0.5) print(layer(row, training=True)) print(layer(row, training=False))

Тот же слой работает с таблицей партии. Часть ячеек станет нулём, соседние в той же строке могут увеличиться:

import tensorflow as tf tf.random.set_seed(0) table = tf.constant([[10.0, 20.0], [30.0, 40.0]]) layer = tf.keras.layers.Dropout(0.5) print(layer(table, training=True))

Соберите строку партии [[2.0, 4.0, 6.0, 8.0]]. Включите режим обучения и выведите ответ слоя с долей отключения 0.5.

Для ряда [[1.0, 2.0, 3.0]] выведите результат слоя с долей 0.5 без режима обучения и исходный ряд.

Создайте таблицу [[1.0, 1.0], [1.0, 1.0]] с осью партии. При доле отключения 0.5 и включённом режиме обучения выведите ответ.

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