如何解决如何在每个步骤中从优化中获得生成的损失,而不必额外调用损失函数?
我有一个带有自定义损失函数的自定义TensorFlow 2.x模型,其中我正在使用标准的最小化函数。
如何获得每一步所产生的损失而不必额外调用损失函数?
这是我的代码:
optimizer = tf.keras.optimizers.Adam()
for i in range(50):
t_interior,X_interior,t_terminal,X_terminal = sampler(1000,50)
for _ in range(steps_per_sample):
with tf.GradientTape(persistent=True) as g:
g.watch(t_interior)
g.watch(X_interior)
g.watch(t_terminal)
g.watch(X_terminal)
with tf.GradientTape(persistent=True) as gg:
gg.watch(X_interior)
V = model(t_interior,X_interior)
dV_dX = gg.gradient(V,X_interior)
dV_dt = gg.gradient(V,t_interior)
d2V_dX2 = g.gradient(dV_dX,X_interior)
optimizer.minimize(lambda : my_loss(model,dV_dt,dV_dX,d2V_dX2,X_terminal),model.trainable_variables)
act_loss = my_loss(model,X_terminal)
loss_list.append(act_loss)
print(act_loss,i)
基本上,我想避免再次调用my_loss
。对于标准损失函数和tensorflow 1.x,答案已经是here,但我想在TF2和自定义损失函数中看到它。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。