【tensorflow】通过机器学习求解二元一次方程的参数

一个简单的tensorflow的运用的例子,其中y=1.1x+0.5,此处要预测的就是1.1以及0.5的值,y还有x为变量。基本流程上来说就是:1、定义训练数据;2、定义训练规则;3、定义误差计算方法;4、定义训练算法;5、开始训练。具体的说明见注释。

import tensorflow as tf
import numpy as np
 
#初始化x_data的值与y_data的值,这两个值为训练数据,是进行机器学习的基础数据
x_data = np.random.rand(1000).astype(np.float32)
y_data = x_data*1.1 + 0.5
 
#初始化想要预测的值,其中weight用来预测1.1,biases用来预测0.5
weight = tf.Variable(tf.zeros([1]))
biases = tf.Variable(tf.zeros([1]))
 
#通过预测的值来求出预测的y值
y = weight * x_data + biases
#通过预测的y值与真实的y_data值进行对比得出误差
loss = tf.reduce_mean(np.square(y - y_data))
#定义训练时采用的算法
opmizer = tf.train.GradientDescentOptimizer(0.1)
train = opmizer.minimize(loss)
#初始化相关变量
init = tf.initialize_all_variables()
sess = tf.Session()
sess.run(init)
#训练1000次,每训练20次,输出一次训练的结果
for i in range(1000):
    sess.run(train)
    if i % 20 == 0:
        print(i, sess.run(weight), sess.run(biases))

以下为输出后的具体结果
0 [ 0.12241732] [ 0.20977269]
20 [ 0.60314673] [ 0.76242435]
40 [ 0.71632892] [ 0.70446223]
60 [ 0.80314684] [ 0.6582014]
80 [ 0.87031776] [ 0.62240416]
100 [ 0.92228931] [ 0.59470707]
120 [ 0.96250111] [ 0.57327706]
140 [ 0.9936139] [ 0.55669618]
160 [ 1.01768672] [ 0.54386711]
180 [ 1.03631234] [ 0.53394103]
200 [ 1.05072331] [ 0.52626091]
220 [ 1.06187344] [ 0.52031869]
240 [ 1.07050061] [ 0.51572114]
260 [ 1.07717574] [ 0.5121637]
280 [ 1.08234024] [ 0.50941139]
300 [ 1.08633649] [ 0.50728178]
320 [ 1.08942842] [ 0.50563395]
340 [ 1.09182048] [ 0.50435913]
360 [ 1.09367096] [ 0.50337291]
380 [ 1.09510314] [ 0.50260967]
400 [ 1.09621119] [ 0.50201917]
420 [ 1.09706855] [ 0.5015623]
440 [ 1.09773195] [ 0.50120872]
460 [ 1.09824514] [ 0.5009352]
480 [ 1.09864235] [ 0.5007236]
500 [ 1.09894943] [ 0.50055993]
520 [ 1.09918702] [ 0.50043321]
540 [ 1.09937108] [ 0.50033516]
560 [ 1.09951341] [ 0.50025934]
580 [ 1.09962344] [ 0.50020069]
600 [ 1.09970868] [ 0.50015527]
620 [ 1.09977448] [ 0.50012022]
640 [ 1.09982538] [ 0.5000931]
660 [ 1.09986484] [ 0.50007206]
680 [ 1.09989536] [ 0.50005579]
700 [ 1.09991896] [ 0.50004327]
720 [ 1.09993708] [ 0.50003362]
740 [ 1.09995103] [ 0.50002605]
760 [ 1.09996176] [ 0.50002038]
780 [ 1.0999701] [ 0.50001591]
800 [ 1.0999769] [ 0.50001234]
820 [ 1.09998167] [ 0.50000989]
840 [ 1.09998596] [ 0.50000751]
860 [ 1.09998846] [ 0.5000062]
880 [ 1.09999084] [ 0.50000501]
900 [ 1.09999323] [ 0.50000381]
920 [ 1.09999514] [ 0.50000262]
940 [ 1.09999561] [ 0.50000232]
960 [ 1.09999561] [ 0.50000232]
980 [ 1.09999561] [ 0.50000232]

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值