Tensorflow实现梯度下降法

import tensorflow as tf

import numpy as np

#使用numpy生成100个随机点
x_data=np.random.rand(100)
y_data=x_data*0.1+0.2
#构建一个线性模型
b=tf.Variable(0.)
k=tf.Variable(0.)
y=k*x_data+b
#二次代价函数,y_data-y的平方累加再取平均数
loss=tf.reduce_mean(tf.square(y_data-y))
#定义一个梯度下降法来进行优化器,0.2为学习率
optimizer=tf.train.GradientDescentOptimizer(0.2)
#最小化代价函数
train=optimizer.minimize(loss)
#初始化变量
init=tf.global_variables_initializer()
with tf.Session() as sess:
    sess.run(init)
    for step in range(201):
        sess.run(train)
        if step%20==0:

            print(step,sess.run([k,b]))

运算结果为:

0 [0.057682134, 0.10132799]
20 [0.10607995, 0.19651425]
40 [0.10344628, 0.19802421]
60 [0.10195344, 0.19888006]
80 [0.10110728, 0.19936518]
100 [0.10062763, 0.19964017]
120 [0.10035577, 0.19979604]
140 [0.10020166, 0.19988438]
160 [0.10011431, 0.19993447]
180 [0.10006479, 0.19996285]
200 [0.10003671, 0.19997896]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值