首页 > 解决方案 > 当以不同格式输入相同数据时,`tf.keras.model.evaluate()` 会提供不同的结果

问题描述

背景

我正在查看以下 Tensorflow 时间序列教程: https ://www.tensorflow.org/tutorials/structured_data/time_series#single-shot_models

对于这里的讨论,我将考虑多步模型部分中的“multi_linear_model”。

我添加以下行

multi_val_performance_new['Linear'] = multi_linear_model.evaluate(next(iter(multi_window.val))[0], next(iter(multi_window.val))[1])

在这条线之后

multi_val_performance['Linear'] = multi_linear_model.evaluate(multi_window.val).

当我检查损失和平均绝对误差时,它们是不同的。

问题

为什么 - 当我将原始数据tf.Dataset输入到时model.evaluate- 我会得到一组损失和平均绝对误差,但是当我输入它的组件(next(iter(tf.Dataset))[0], next(iter(tf.Dataset)[1])时-model.evaluate我会得到一组不同的损失和平均绝对误差?

注意

我已经shuffle = false进去了def make_dataset(self, data):

标签: pythontensorflowkerastf.keras

解决方案


next(iter(ds))只会返回一批/观察。传入整个数据集model.evaluate将返回整个数据集的指标。


推荐阅读