tensorflow训练线性函数

tensorflow一个简单的例子,训练一个 y = 0.1x+0.3的线性函数。

主要学习目的是了解tensorflow训练模型的过程和模式,对以后训练其他模型有个大概的了解。

tensorflow训练模型大致有以下几个步骤:

1、数据处理(加载数据、创建数据)

2、构建训练模型或网络

3、损失函数计算与参数优化

4、创建Session

5、迭代训练

环境: win7 64位 tensorflow-gpu1.3 python3.5

"""
this code is only for python 3+
"""
import tensorflow as tf
import numpy as np

#create data
x_data = np.random.rand(100).astype(np.float32)
y_data = x_data*0.1+0.3

### create tensorflow structure start ###

#产生-1到1之间的均匀分布的类型为float32的一维张量
Weights = tf.Variable(tf.random_uniform([1],minval=-1.0,maxval=1.0,dtype=np.float32))
biases = tf.Variable(tf.zeros([1]))

y = Weights*x_data+biases

#损失函数  对平方和求均值
loss = tf.reduce_mean(tf.square(y - y_data))
#采用梯度下降算法对模型参数进行优化参数为0-1
optimizer = tf.train.GradientDescentOptimizer(0.5)
#计算损失方程的最小值  可以和上一步链式表示
train = optimizer.minimize(loss)

#初始化所有的变量
init = tf.global_variables_initializer()

### create tensorflow structure end ###

# 创建一个Session
sess = tf.Session()
# 执行初始化
sess.run(init)

#迭代训练
training_steps = 801

for step in range(training_steps):
    sess.run(train)
    #打印训练过程的递减情况
    if step % 20 == 0:
        print(step,sess.run(Weights),sess.run(biases))
0 [ 0.80305016] [-0.14744911]
20 [ 0.28564903] [ 0.19576499]
40 [ 0.1475025] [ 0.27332914]
60 [ 0.11215457] [ 0.29317567]
80 [ 0.10311003] [ 0.29825383]
100 [ 0.10079577] [ 0.29955322]
120 [ 0.1002036] [ 0.29988569]
140 [ 0.1000521] [ 0.29997078]
160 [ 0.10001334] [ 0.29999253]
180 [ 0.10000343] [ 0.2999981]
200 [ 0.10000085] [ 0.29999954]
220 [ 0.10000022] [ 0.29999989]
240 [ 0.1000001] [ 0.29999995]
260 [ 0.1000001] [ 0.29999995]
280 [ 0.1000001] [ 0.29999995]
300 [ 0.1000001] [ 0.29999995]
320 [ 0.1000001] [ 0.29999995]
340 [ 0.1000001] [ 0.29999995]
360 [ 0.1000001] [ 0.29999995]
380 [ 0.1000001] [ 0.29999995]
400 [ 0.1000001] [ 0.29999995]
420 [ 0.1000001] [ 0.29999995]
440 [ 0.1000001] [ 0.29999995]
460 [ 0.1000001] [ 0.29999995]
480 [ 0.1000001] [ 0.29999995]
500 [ 0.1000001] [ 0.29999995]
520 [ 0.1000001] [ 0.29999995]
540 [ 0.1000001] [ 0.29999995]
560 [ 0.1000001] [ 0.29999995]
580 [ 0.1000001] [ 0.29999995]
600 [ 0.1000001] [ 0.29999995]
620 [ 0.1000001] [ 0.29999995]
640 [ 0.1000001] [ 0.29999995]
660 [ 0.1000001] [ 0.29999995]
680 [ 0.1000001] [ 0.29999995]
700 [ 0.1000001] [ 0.29999995]
720 [ 0.1000001] [ 0.29999995]
740 [ 0.1000001] [ 0.29999995]
760 [ 0.1000001] [ 0.29999995]
780 [ 0.1000001] [ 0.29999995]
800 [ 0.1000001] [ 0.29999995]

最后发现训练到240步时,参数已经获得了很好的结果。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值