Метод get_weights класса Layer
Метод get_weights класса Layer возвращает веса слоя
в виде списка массивов NumPy. Метод не принимает параметров.
Если слой еще не построен, метод возвращает пустой список.
Веса возвращаются в том порядке, в котором они были созданы
при построении слоя.
Синтаксис
layer.get_weights()
Пример
Давайте создадим полносвязный слой Dense и получим его веса:
import tensorflow as tf
tf.random.set_seed(0)
layer = tf.keras.layers.Dense(3, input_shape=(2,))
res = layer.get_weights()
print(res)
Результат выполнения кода:
[]
Как видим, до построения слоя список весов пуст.
Пример
Давайте построим слой, передав в него данные, а затем получим веса:
import tensorflow as tf
tf.random.set_seed(0)
layer = tf.keras.layers.Dense(3, input_shape=(2,))
t = tf.constant([[1, 2], [3, 4]])
layer(t)
res = layer.get_weights()
print(res)
Результат выполнения кода:
[array([[ 0.6564443 , -0.6406282 , 0.5357498 ],
[-0.2563525 , 0.6333451 , -0.3174352 ]], dtype=float32), array([0., 0., 0.], dtype=float32)]
Метод вернул список из двух массивов: первый - матрица весов, второй - вектор смещений.
Пример
Давайте извлечем отдельно веса и смещения из списка:
import tensorflow as tf
tf.random.set_seed(0)
layer = tf.keras.layers.Dense(3, input_shape=(2,))
t = tf.constant([[1, 2], [3, 4]])
layer(t)
res = layer.get_weights()
kernel = res[0]
bias = res[1]
print(kernel.shape)
print(bias.shape)
Результат выполнения кода:
(2, 3)
(3,)
Смотрите также
-
метод
set_weights,
который устанавливает веса слоя -
атрибут
weights,
который хранит список весов слоя -
атрибут
trainable_weights,
который хранит список обучаемых весов слоя -
метод
count_params,
который подсчитывает количество параметров слоя