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

Атрибут non_trainable_weights

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

Атрибут не принимает параметров и возвращает список объектов тензоров TensorFlow. Если у слоя нет нетренируемых весов, возвращается пустой список.

Синтаксис

layer.non_trainable_weights

Пример

Давайте создадим слой Dense и посмотрим на его нетренируемые веса. У полносвязного слоя без специальных настроек таких весов нет:

import tensorflow as tf layer = tf.keras.layers.Dense(3) layer.build((None, 5)) print(layer.non_trainable_weights)

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

[]

Пример

Давайте создадим слой пакетной нормализации BatchNormalization. Этот слой хранит скользящее среднее и дисперсию, которые являются нетренируемыми весами:

import tensorflow as tf layer = tf.keras.layers.BatchNormalization() layer.build((None, 4)) print(len(layer.non_trainable_weights)) print(layer.non_trainable_weights[0].shape)

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

2 (4,)

Пример

Давайте создадим собственный слой с нетренируемым весом через метод add_weight и проверим, что он попадает в атрибут non_trainable_weights:

import tensorflow as tf class MyLayer(tf.keras.layers.Layer): def build(self, input_shape): self.my_weight = self.add_weight( name="my_weight", shape=(), initializer="zeros", trainable=False ) layer = MyLayer() layer.build((None, 3)) print(layer.non_trainable_weights) print(layer.trainable_weights)

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

[<tf.Variable 'my_weight:0' shape=() dtype=float32, numpy=0.0>] []

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

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