如何解决损失相对于模型输出的Tensorflow梯度给出无
我正试图根据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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。