`loss` passed to Optimizer.compute_gradients should be a function when eager execution is enabl

loss passed to Optimizer.compute_gradients should be a function when eager execution is enabl

1、错误原因:

这是因为tensorflow版本的问题,tensorflow1和tensorflow2中的代码略有不同,更换部分代码即可

2、tensorflow1出错的代码

loss = tf.reduce_mean(tf.square(y-y_data))
optimizer = tf.compat.v1.train.GradientDescentOptimizer(0.5)
# #tf.compat.v1.disable_eager_execution()
train = optimizer.minimize(loss)

3、修改部分代码

loss = lambda: tf.keras.losses.MSE(y_data, Weights * x_data + biases)
optimizer = tf.keras.optimizers.SGD(learning_rate=0.5)  

4、即可

这是小问题,继续学习!

你可能感兴趣的:(tensorflow,python,tensorflow,python)