Метод get_weights
Метод get_weights класса Model возвращает список, содержащий значения весов всех слоев модели. Каждый элемент списка представляет собой массив NumPy с весами соответствующего слоя. Метод не принимает обязательных параметров и возвращает веса в том порядке, в котором слои были добавлены в модель. Для каждого слоя возвращается столько массивов, сколько тензоров весов он содержит, например, для полносвязного слоя это матрица весов и вектор смещений.
Синтаксис
model.get_weights()
Пример
Давайте создадим простую модель с одним полносвязным слоем и получим ее веса:
import tensorflow as tf
tf.random.set_seed(0)
model = tf.keras.Sequential([
tf.keras.layers.Dense(3, input_shape=(2,))
])
weights = model.get_weights()
print(type(weights))
print(len(weights))
print(weights[0].shape)
print(weights[1].shape)
Результат выполнения кода:
<class 'list'>
2
(2, 3)
(3,)
Пример
Давайте выведем значения весов модели:
import tensorflow as tf
tf.random.set_seed(0)
model = tf.keras.Sequential([
tf.keras.layers.Dense(3, input_shape=(2,))
])
weights = model.get_weights()
print(weights[0])
print(weights[1])
Результат выполнения кода:
[[ 0.79948825 -0.17133099 0.34143555]
[ 0.30856884 0.6760856 -0.87366986]]
[0. 0. 0.]
Пример
Давайте создадим модель с двумя слоями и посмотрим на количество массивов весов:
import tensorflow as tf
tf.random.set_seed(0)
model = tf.keras.Sequential([
tf.keras.layers.Dense(4, input_shape=(3,)),
tf.keras.layers.Dense(2)
])
weights = model.get_weights()
print(len(weights))
print(weights[0].shape)
print(weights[1].shape)
print(weights[2].shape)
print(weights[3].shape)
Результат выполнения кода:
4
(3, 4)
(4,)
(4, 2)
(2,)
Смотрите также
-
метод
set_weights,
который устанавливает веса модели -
атрибут
weights,
который содержит список тензоров весов модели -
атрибут
trainable_weights,
который содержит список обучаемых весов модели -
метод
get_config,
который возвращает конфигурацию модели