我计算如下:
#Compute the cost
cost = tf.reduce_mean(tf.square(y - out))
minimizer = tf.train.GradientDescentOptimizer(learning_rate).minimize(cost)
运行minimizer = tf.train.GradientDescentOptimizer(learning_rate).minimize(cost)
后,我收到此错误:
ValueError: No gradients provided for any variable, check your graph for ops that do not support gradients, between variables ["<tf.Variable 'parameters:0' shape=(15,) dtype=float32_ref>", "<tf.Variable 'weights:0' shape=(6,) dtype=float32_ref>"] and loss Tensor("Mean_1:0", dtype=float32).
这条路在哪里错了,为什么?
答案 0 :(得分:1)
简短版本:导致错误消息的问题是您的模型函数不使用任何张量流变量。
含义:您定义的唯一TF.variable是w,它不在模型函数中使用。因此,在模型中没有关于张量流可以关于损失函数进行优化的权利。如果您希望tensorflow优化系数,请在模型定义中使用变量w而不是常数系数c,并确保它们具有相同的大小。
此外,您在模型定义中使用非tensorflow函数,如append函数而不是tf.append。这增加了问题。
您的代码中存在许多问题。例如,您双重定义了全局变量初始化程序和会话。
我想基本的问题是你还没有理解低级tensorflow API的基本结构。显然,图形和会话定义的概念。首先需要定义一个包含模型完整定义的图形,并仅使用tensorflow函数。之后,您才会开始一个会话,在该会话中初始化wights并开始训练它。