首页 > 解决方案 > 如果 Keras Tensorflow 的 `Model.fit` 的目标/输出是 `None` 会发生什么?

问题描述

我正在查看这段代码:https ://github.com/keras-team/keras/blob/master/examples/variational_autoencoder.py#L198 ,在Model.fit()没有输出或目标张量的情况下调用其中。起初,我认为 的行为Model.fit()是使用输入作为输出(这对于这个自动编码器实现是有意义的)。但后来我查看了文档,这不是它所说的:https ://www.tensorflow.org/api_docs/python/tf/keras/Model#fit

它暗示什么时候y,目标是Nonex应该是某种同时包含输入和目标的结构。

但是在这个自动编码器实现中很清楚,这不是发生的事情(x只包含输入)。有人可以解释在这种情况下会发生什么吗?

标签: pythontensorflowkerasautoencoder

解决方案


在model.fit 的Keras文档中,说明了以下内容:

  • y:目标(标签)数据的 Numpy 数组(如果模型具有单个输出),或 Numpy 数组列表(如果模型具有多个输出)。如果模型中的输出层被命名,您还可以传递一个字典,将输出名称映射到 Numpy 数组。 如果从框架原生张量(例如 TensorFlow 数据张量)馈送,则 y 可以是 None (默认)。

现在,请注意在变分自动编码器示例中,outputs模型的参数vae是 TensorFlow 原生张量,因为它是由另一个模型decoder(TensorFlow 原生张量)的输出给出的,该模型的inputs参数与的输入无关。vae


推荐阅读