Метод variables класса Module
Метод variables класса Module возвращает список всех переменных,
содержащихся в модели или слое. К переменным относятся веса и смещения,
созданные внутри слоев. Метод не принимает параметров и возвращает
стандартный список Python с объектами tf.Variable.
В отличие от метода trainable_variables,
данный метод включает также необучаемые переменные,
например статистики слоев нормализации.
Синтаксис
module.variables
Пример
Давайте создадим простой слой Dense и получим список его переменных:
import tensorflow as tf
layer = tf.keras.layers.Dense(3, input_shape=(2,))
res = layer.variables
print(res)
Результат выполнения кода:
[<tf.Variable 'kernel:0' shape=(2, 3) dtype=float32, numpy=
array([[...]], dtype=float32)>, <tf.Variable 'bias:0' shape=(3,) dtype=float32, numpy=array([...], dtype=float32)>]
Пример
Давайте выведем имена и формы всех переменных слоя:
import tensorflow as tf
layer = tf.keras.layers.Dense(3, input_shape=(2,))
for v in layer.variables:
print(v.name, v.shape)
Результат выполнения кода:
kernel:0 (2, 3)
bias:0 (3,)
Пример
Давайте создадим модель с несколькими слоями и посмотрим, сколько переменных она содержит:
import tensorflow as tf
model = tf.keras.Sequential([
tf.keras.layers.Dense(4, input_shape=(2,)),
tf.keras.layers.Dense(3)
])
res = model.variables
print(len(res))
Результат выполнения кода:
4
Модель содержит четыре переменные: два ядра и два смещения
для двух слоев Dense.
Смотрите также
-
класс
Module,
который является базовым классом для моделей и слоев -
метод
call,
который выполняет прямой проход через модуль -
метод
__call__,
который вызывает модуль как функцию -
метод
trainable_variables,
который возвращает только обучаемые переменные