`tf.keras.model.evaluate()` 在以不同格式提供相同数据时提供不同的结果

`tf.keras.model.evaluate()` provides different results when fed the same data in different formats

背景

我正在查看以下 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 - 我得到一组不同的损失和平均绝对误差吗?

注意

我在def make_dataset(self, data):中设置了shuffle = false

next(iter(ds)) 只会 return 一个 batch/observation。在 model.evaluate 中传递整个数据集将 return 整个数据集的指标。