问题描述
我有一个带有自定义损失函数的自定义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 (将#修改为@)