具有梯度下降的 Tensorflow 导致错误的系数

Tensorflow with gradient decent results in wrong coefficients

目前,我正在尝试构建一个线性回归,使用出生率 (x) 作为预测因子来预测预期寿命 (y)。 y=w*x+b 可以在此处找到数据集:Dataset

这是我的代码的在线 link:Code

想法很简单:i 运行 300 个 epoch,在每个 epoch 内,我将一对一的配对样本 (x 值,y 值) 馈送到梯度体面优化器以最小化损失函数。

然而,我得到的结果却大错特错。 我的结果图片:my result

它不会产生负斜率,而是总是产生正斜率,而提供的示例答案 here 会产生具有负斜率的更好模型。

我的编码有什么问题?

问题是线的位置

sess.run(tf.global_variables_initializer())

由于它在 while 循环内,wb 每次迭代都会重新初始化为 0。因此,您看到的是一个 while 循环迭代训练的结果(最后一个).您应该在 while 循环之前移动该行。