码迷,mamicode.com
首页 > 其他好文 > 详细

例子:用tensorflow来拟合线性函数的k和b(02-4)

时间:2020-02-13 10:08:58      阅读:69      评论:0      收藏:0      [点我收藏+]

标签:top   init   initial   随机   image   优化器   session   variable   lob   

import tensorflow as tf
import numpy as np

#使用numpy生成100个随机点
x_data=np.random.rand(100)
y_data=x_data*0.1+0.2   #这里我们设定已知直线的k为0.1 b为0.2得到y_data

#构造一个线性模型
b=tf.Variable(0.)
k=tf.Variable(0.)
y=k*x_data+b

#二次代价函数(白话:两数之差平方后取 平均值)
loss=tf.reduce_mean(tf.square(y_data-y))
#定义一个梯度下降法来进行训练的优化器(其实就是按梯度下降的方法改变线性模型k和b的值,注意这里的k和b一开始初始化都为0.0,后来慢慢向0.1、0.2靠近)
optimizer=tf.train.GradientDescentOptimizer(0.2)    #这里的0.2是梯度下降的系数也可以是0.3...
#最小化代价函数(训练的方式就是使loss值最小,loss值可能是随机初始化100个点与模型拟合出的100个点差的平方相加...等方法)
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])) #这里使用fetch的方式只是打印k、b的值,每20次打印一下,改变k、b的值是梯度下降优化器的工作

 贴一张我的运行结果:

技术图片

 

看,k和b在一步步逼近0.1和0.2,是不是很神奇!最终的误差仅为0.000026526和0.00001402,厉害吧,感受到深度学习的强大了么,这里还只是一个神经元,如果成千上万个甚至几十万个会有什么效果呢?

这就是深度学习的power,当然前提是你得配上tensorflow的接口,才能快速高效的搭建自己的神经网络。

 

例子:用tensorflow来拟合线性函数的k和b(02-4)

标签:top   init   initial   随机   image   优化器   session   variable   lob   

原文地址:https://www.cnblogs.com/go-ahead-wsg/p/12302093.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!