Атрибут trainable_weights класса Layer
Атрибут trainable_weights класса Layer возвращает список тензоров,
которые являются обучаемыми весами слоя. К обучаемым весам относятся те переменные,
которые обновляются в процессе обучения с помощью оптимизатора.
Атрибут доступен только после того, как слой был построен,
то есть после первого вызова слоя на данных или после явного вызова метода build.
Атрибут не принимает параметров и возвращает список объектов tf.Variable.
Синтаксис
layer.trainable_weights
Пример
Давайте создадим слой Dense с тремя нейронами и построим его,
передав на вход тензор из двух примеров. Затем выведем обучаемые веса слоя:
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]])
layer(t)
print(layer.trainable_weights)
Результат выполнения кода:
[<tf.Variable 'dense/kernel:0' shape=(2, 3) dtype=float32, numpy=
array([[...]], dtype=float32)>, <tf.Variable 'dense/bias:0' shape=(3,) dtype=float32, numpy=array([...], dtype=float32)>]
Пример
Давайте выведем имена и формы обучаемых весов слоя:
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]])
layer(t)
for w in layer.trainable_weights:
print(w.name, w.shape)
Результат выполнения кода:
"dense/kernel:0 (2, 3)"
"dense/bias:0 (3,)"
Пример
Давайте создадим слой Dense с параметром trainable=False
и убедимся, что его веса не попадают в список обучаемых:
import tensorflow as tf
tf.random.set_seed(0)
layer = tf.keras.layers.Dense(3, trainable=False)
t = tf.constant([[1.0, 2.0], [3.0, 4.0]])
layer(t)
print(layer.trainable_weights)
Результат выполнения кода:
[]
Смотрите также
-
атрибут
weights,
который возвращает все веса слоя -
атрибут
non_trainable_weights,
который возвращает необучаемые веса слоя -
атрибут
trainable,
который указывает, обучаем ли слой -
метод
get_weights,
который возвращает значения весов слоя