本文共 1364 字,大约阅读时间需要 4 分钟。
文章作者:Tyan
博客: | |本文主要是以求解线性回归的参数为例,讲解一下tensorflow的用法。下面的代码中我们自己构建了一个线性回归模型y = 0.1 * x + 0.3
,然后我们使用tensorflow来进行了求解。Demo源码及解释如下:
#!/usr/bin/env python# _*_ coding: utf-8 _*_import tensorflow as tfimport numpy as np# 随机生成100个浮点数x_data = np.random.rand(100).astype(np.float32)# y=0.1*x+0.3,这样就构造了训练数据(x_data,y_data)y_data = x_data * 0.1 + 0.3# 定义线性回归的权重参数Weights = tf.Variable(tf.random_uniform([1], -1.0, 1.0))# 定义线性回归的偏置参数Biases = tf.Variable(tf.zeros([1]))# 构建线性回归模型y = Weights * x_data + Biases# 计算线性回归的损失函数loss = tf.reduce_mean(tf.square(y - y_data))# 定义线性回归的求解方法,梯度下降法,学习率为0.5optimizer = tf.train.GradientDescentOptimizer(0.5)# 使用tensorflow求解train = optimizer.minimize(loss)# 初始化tensorflow的所有变量init = tf.global_variables_initializer()# 定义tensorflow的sessionsess = tf.Session()# 将初始化数据放入到session中,执行时会用到sess.run(init)# 迭代201次求解线性回归参数for step in range(201): # session执行训练 sess.run(train) if step % 20 == 0: # 每迭代二十次输出一次结果 print step, sess.run(Weights), sess.run(Biases)
执行结果如下图:
0 [ 0.46898228] [ 0.12989661]20 [ 0.18490312] [ 0.25323763]40 [ 0.1203066] [ 0.28881568]60 [ 0.10485679] [ 0.29732502]80 [ 0.10116163] [ 0.29936022]100 [ 0.10027781] [ 0.29984701]120 [ 0.10006645] [ 0.29996341]140 [ 0.10001589] [ 0.29999125]160 [ 0.10000382] [ 0.29999793]180 [ 0.10000091] [ 0.29999951]200 [ 0.10000024] [ 0.29999989]
从结果中可以看出,求解的结果还是很准确的。
转载地址:http://ycwui.baihongyu.com/