Метод build класса Model
Метод build класса Model создает веса модели.
Первым параметром метод принимает форму входных данных
input_shape. Метод вызывается автоматически при первом
вызове модели или вручную, когда нужно заранее создать веса.
После вызова метода модель считается построенной, а атрибут
built становится равным True.
Метод полезен, когда нужно узнать количество параметров модели
до обучения или когда модель строится вручную с помощью
подкласса tf.keras.Model.
Синтаксис
model.build(input_shape)
Пример
Давайте создадим простую модель и построим ее с помощью метода
build:
import tensorflow as tf
model = tf.keras.Sequential([
tf.keras.layers.Dense(3, input_shape=(5,))
])
model.build((None, 5))
print(model.built)
print(len(model.weights))
Результат выполнения кода:
True
2
Пример
Давайте создадим подкласс tf.keras.Model и построим его
вручную с помощью метода build:
import tensorflow as tf
class MyModel(tf.keras.Model):
def __init__(self):
super().__init__()
self.dense = tf.keras.layers.Dense(2)
def call(self, inputs):
return self.dense(inputs)
model = MyModel()
model.build((None, 5))
print(model.built)
print(model.dense.kernel.shape)
Результат выполнения кода:
True
(5, 2)
Пример
Давайте проверим, что модель не построена до вызова метода
build:
import tensorflow as tf
model = tf.keras.Sequential([
tf.keras.layers.Dense(3, input_shape=(5,))
])
print(model.built)
model.build((None, 5))
print(model.built)
Результат выполнения кода:
False
True