TensorflowX计算并最小化损失(相同步骤)



opt.minimize(loss,vars=[...])不回亏

我可以在这之后计算损失,但是我要计算两次损失函数。

我如何在一个"单一的"程序中进行最小化和损失计算?步骤,使损失返回。

In Tensorflow第一个会这样做:

train_op = Optimizer.minimize(loss)
sess.run([loss, train_op], feed_dict=feed)

如何在Tensorflow 2中做到这一点

一种解决方案是使用渐变胶带。

import tensorflow as tf
opt = tf.keras.optimizers.SGD(learning_rate=0.1)
loss_fn = lambda: 3 * var1 * var1 + 2 * var2 * var2
var1 = tf.Variable(100.0)
var2 = tf.Variable(-2.0)

with tf.GradientTape() as tape:
loss = loss_fn() # alternativly some model.predict
print(loss)
grads = tape.gradient(loss, [var1,var2])
opt.apply_gradients(zip(grads, [var1,var2]))
print(var1.numpy())
print(var2.numpy())

最新更新