损失相对于模型输出的Tensorflow梯度给出无

时间:2020-11-06 17:54:32

标签: python tensorflow gradienttape

我正试图根据training_step的{​​{1}}函数中的模型输出来区分损失函数。这是我的尝试:

tf.keras.Model

我将 def train_step(self, data): x, y = data with tf.GradientTape(persistent=True) as tape1: y_pred, dense_out = self(x, training=True) with tf.GradientTape() as tape2: tape2.watch(y_pred) loss = self.compiled_loss(y, y_pred) dy = tape2.gradient(loss, y_pred) 用于以后需要的渐变。首先,tape1给出了dy,我该如何解决?其次,是否允许在模型的None方法中使用training=True返回两个输出值,而在call中仅返回一个输出值?即使我不这样做,training=False还是dy吗?

编辑 :如果我在None函数之外执行以下操作,则会得到与train_step不同的结果:

None

0 个答案:

没有答案