Метод evaluate класса Model
Метод evaluate применяется к обученной модели
и возвращает значение потерь, а также значения метрик,
заданных при компиляции. Первым параметром передаются
входные данные x, вторым - целевые данные y.
Третьим параметром можно передать размер батча batch_size.
Четвертым - список обратных вызовов callbacks.
Метод не изменяет веса модели, а только оценивает ее качество.
Синтаксис
model.evaluate(x, y, [batch_size], [callbacks])
Пример
Давайте создадим простую модель, скомпилируем ее и оценим на тестовых данных:
import tensorflow as tf
tf.random.set_seed(0)
model = tf.keras.Sequential([
tf.keras.layers.Dense(3, activation='relu', input_shape=(2,)),
tf.keras.layers.Dense(1)
])
model.compile(optimizer='adam', loss='mse', metrics=['mae'])
x = tf.constant([[1.0, 2.0], [3.0, 4.0], [5.0, 6.0]])
y = tf.constant([[3.0], [7.0], [11.0]])
res = model.evaluate(x, y)
print(res)
Результат выполнения кода:
1/1 [==============================] - 0s 100ms/step - loss: 52.3546 - mae: 7.1554
[52.354644775390625, 7.155385971069336]
Пример
Давайте укажем размер батча при оценке модели:
import tensorflow as tf
tf.random.set_seed(0)
model = tf.keras.Sequential([
tf.keras.layers.Dense(3, activation='relu', input_shape=(2,)),
tf.keras.layers.Dense(1)
])
model.compile(optimizer='adam', loss='mse', metrics=['mae'])
x = tf.constant([[1.0, 2.0], [3.0, 4.0], [5.0, 6.0]])
y = tf.constant([[3.0], [7.0], [11.0]])
res = model.evaluate(x, y, batch_size=2)
print(res)
Результат выполнения кода:
2/2 [==============================] - 0s 2ms/step - loss: 52.3546 - mae: 7.1554
[52.354644775390625, 7.155385971069336]
Пример
Давайте получим только значение потерь, указав
параметр return_dict:
import tensorflow as tf
tf.random.set_seed(0)
model = tf.keras.Sequential([
tf.keras.layers.Dense(3, activation='relu', input_shape=(2,)),
tf.keras.layers.Dense(1)
])
model.compile(optimizer='adam', loss='mse', metrics=['mae'])
x = tf.constant([[1.0, 2.0], [3.0, 4.0], [5.0, 6.0]])
y = tf.constant([[3.0], [7.0], [11.0]])
res = model.evaluate(x, y, return_dict=True)
print(res)
Результат выполнения кода:
1/1 [==============================] - 0s 100ms/step - loss: 52.3546 - mae: 7.1554
{'loss': 52.354644775390625, 'mae': 7.155385971069336}