繁体   English   中英

Tensorflow 中的变量没有梯度

[英]No gradients for variables in Tensorflow

我正在学习在 Tensorflow 中训练变量。 但我什至无法让最简单的情况正确。 以下代码将产生ValueError: No gradients provided for any variable 有谁能帮助我吗? 谢谢!

import tensorflow as tf
import click
tf.compat.v1.enable_eager_execution()
#tf.config.run_functions_eagerly(True)

@click.command()
@click.option('--lr', default = 0.001)
@click.option('--epochs', default = 10)
def main(lr, epochs):
    optimizer = tf.optimizers.Adam(learning_rate=lr)

    v = tf.Variable([0,0],trainable=True)
    w = tf.convert_to_tensor([1,1])

    def loss():
        loss_value = tf.reduce_sum(tf.square(v-w))
        return loss_value

    variables = [v]
    for epoch in range(epochs):
        optimizer.minimize(loss,variables)
        #print("epoch ", epoch, ": loss: ",loss_value.numpy())

if __name__ == '__main__':
    main()

,这个错误可以通过提及创建的每个变量的数据类型来解决。 v = tf.Variable([0,0],trainable=True,dtype=tf.float32) w = tf.convert_to_tensor([1,1],dtype=tf.float32)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM