Метод test_on_batch класса Model
Метод test_on_batch применяется к модели
Model для оценки качества работы на одной
партии данных. Метод принимает входные данные
x, целевые значения y, а также
дополнительные параметры, такие как веса образцов
sample_weight и флаг return_dict.
В отличие от метода evaluate, который
проходит по всему датасету, test_on_batch
обрабатывает только одну партию и возвращает
результат немедленно.
Синтаксис
Model.test_on_batch(x, y=None, sample_weight=None, return_dict=False)
Пример
Давайте создадим простую модель, скомпилируем ее и выполним оценку на одной партии данных:
import tensorflow as tf
tf.random.set_seed(0)
model = tf.keras.Sequential([
tf.keras.layers.Dense(4, activation='relu', input_shape=(3,)),
tf.keras.layers.Dense(1)
])
model.compile(optimizer='sgd', loss='mse', metrics=['mae'])
x = tf.constant([[1.0, 2.0, 3.0], [4.0, 5.0, 6.0]])
y = tf.constant([[1.0], [2.0]])
res = model.test_on_batch(x, y)
print(res)
Результат выполнения кода:
[23.794418, 4.8412805]
Пример
Давайте выполним оценку с параметром
return_dict=True, чтобы получить результат
в виде словаря:
<+python+>
import tensorflow as tf
tf.random.set_seed(0)
model = tf.keras.Sequential([
tf.keras.layers.Dense(4, activation='relu', input_shape=(3,)),
tf.keras.layers.Dense(1)
])
model.compile(optimizer='sgd', loss='mse', metrics=['mae'])
x = tf.constant([[1.0, 2.0, 3.0], [4.0, 5.0, 6.0]])
y = tf.constant([[1.0], [2.0]])
res = model.test_on_batch(x, y, return_dict=True)
print(res)
<-python+>
Результат выполнения кода:
{'loss': 23.794418, 'mae': 4.8412805}
Пример
Давайте выполним оценку с учетом весов образцов:
import tensorflow as tf
tf.random.set_seed(0)
model = tf.keras.Sequential([
tf.keras.layers.Dense(4, activation='relu', input_shape=(3,)),
tf.keras.layers.Dense(1)
])
model.compile(optimizer='sgd', loss='mse', metrics=['mae'])
x = tf.constant([[1.0, 2.0, 3.0], [4.0, 5.0, 6.0]])
y = tf.constant([[1.0], [2.0]])
sample_weight = tf.constant([1.0, 0.5])
res = model.test_on_batch(x, y, sample_weight=sample_weight)
print(res)
Результат выполнения кода:
[17.845814, 4.8412805]
Смотрите также
-
метод
evaluate,
который выполняет оценку модели на всем датасете -
метод
train_on_batch,
который выполняет обучение модели на одной партии данных -
метод
predict_on_batch,
который возвращает предсказания для одной партии данных -
метод
fit,
который выполняет обучение модели на всем датасете