【发布时间】:2021-07-28 02:49:37
【问题描述】:
import numpy as np
import matplotlib.pyplot as plt
import tensorflow as tf
def line(x):
return 2*x+4
X = np.arange(0,20)
y = [k for k in line(X)]
a = tf.Variable(1.0)
b = tf.Variable(0.2)
y_in = a*X + b
loss = tf.reduce_mean(tf.square(y_in - y))
#this is my old code
#optimizer = tf.train.GradientDescentOptimizer(0.2)
#train = optimizer.minimize(loss)
#new Code
optimizer = tf.optimizers.SGD (0.2)
train = optimizer.minimize(loss,var_list=[a,b])
///错误
ValueError Traceback(最近一次调用最后一次) 在 () ----> 1 列车 = optimizer.minimize(loss,var_list=[a,b])
1 帧
/usr/local/lib/python3.7/dist-packages/tensorflow/python/keras/optimizer_v2/optimizer_v2.py in _compute_gradients(self, loss, var_list, grad_loss, tape)
530 # TODO(josh11b): 测试我们是否以合理的方式处理权重衰减。
531 如果不可调用(丢失)并且磁带为无:
--> 532 raise ValueError("tape is required when a Tensor loss is passed.")
第533章
534
ValueError: tape 在传递 Tensor 损失时是必需的。
【问题讨论】:
-
仅供参考,如果没有任何有效值可以是假的,那么将其写为
tape or backprop.GradientTape()可能会更容易一些。
标签: python numpy tensorflow regression linear-regression