Метод count_params
Метод count_params класса Layer возвращает общее количество
параметров слоя в виде целого числа. Параметрами считаются все веса,
созданные слоем: как обучаемые, так и необучаемые. Метод не принимает
аргументов и может быть вызван только после того, как слой был построен,
то есть после первого вызова слоя на данных или после явного вызова
метода build.
Если слой еще не построен, метод вызовет ошибку, так как веса еще не созданы. Общее количество параметров складывается из размеров всех тензоров весов слоя.
Синтаксис
layer.count_params()
Пример
Давайте создадим полносвязный слой Dense с четырьмя нейронами,
построим его на входных данных размером три и подсчитаем количество
параметров:
import tensorflow as tf
layer = tf.keras.layers.Dense(4)
layer.build((None, 3))
res = layer.count_params()
print(res)
Результат выполнения кода:
16
Пример
Давайте проверим, что количество параметров складывается из весов и смещений слоя:
import tensorflow as tf
layer = tf.keras.layers.Dense(4)
layer.build((None, 3))
res = layer.count_params()
print(res)
print(layer.kernel.shape)
print(layer.bias.shape)
Результат выполнения кода:
16
(3, 4)
(4,)
Матрица весов содержит 3 × 4 = 12 элементов, а смещения - 4 элемента. В сумме получается 16 параметров.
Пример
Давайте подсчитаем параметры слоя, который еще не был построен:
import tensorflow as tf
layer = tf.keras.layers.Dense(4)
try:
res = layer.count_params()
print(res)
except ValueError as e:
print("ValueError:", e)
Результат выполнения кода:
ValueError: You must call `build` on this layer before calling `count_params`.
Смотрите также
-
класс
Layer,
который является базовым классом для всех слоев -
метод
build,
который создает веса слоя -
метод
get_weights,
который возвращает значения весов слоя -
атрибут
weights,
который содержит список весов слоя