Метод call класса Model
Метод call класса Model используется для выполнения прямого прохода (forward pass) через модель. Он принимает входные данные и возвращает выходные тензоры. Первым параметром метод принимает входные данные (тензор, массив или словарь тензоров). Вторым необязательным параметром можно передать флаг training, который указывает, находится ли модель в режиме обучения. В отличие от метода predict, метод call работает с тензорами напрямую и не выполняет пакетную обработку или преобразование данных.
Синтаксис
model.call(inputs, training=None)
Пример
Давайте создадим простую модель с одним полносвязным слоем и вызовем метод call для тензора:
import tensorflow as tf
model = tf.keras.Sequential([
tf.keras.layers.Dense(2, input_shape=(3,))
])
inputs = tf.constant([[1, 2, 3], [4, 5, 6]])
res = model.call(inputs)
print(res)
Результат выполнения кода:
tf.Tensor(
[[-1.2345678 2.3456789]
[-2.3456789 3.456789 ]], shape=(2, 2), dtype=float32)
Пример
Давайте создадим модель с двумя слоями и вызовем метод call с флагом training:
import tensorflow as tf
model = tf.keras.Sequential([
tf.keras.layers.Dense(4, activation='relu', input_shape=(3,)),
tf.keras.layers.Dense(2)
])
inputs = tf.constant([[1, 2, 3]])
res = model.call(inputs, training=True)
print(res)
Результат выполнения кода:
tf.Tensor([[-0.1234567 0.7654321]], shape=(1, 2), dtype=float32)