二、tensorflow线性拟合实例。

目的,给定一堆(本博客为100个)离散的点,通过单层的神经网络进行学习,工具tensorflow,下面开始具体教程:

首先创造数据:

import tensorflow as tf
import nump as np
**create data**
x_data = np.random.randn(100).astype(float32)
y_data = x_data*0.3 + 0.7

这个数据是我们自己生成的,x轴上是100个离散的点,对应为二维坐标系里一条线性直线,具体代码为:

import matplotlib.pyplot as plt
plt.title("scatter diagram.")
plt.xlabel("x_data")
plt.ylabel("y_data")
plt.xlim(xmax=1, xmin=0)
plt.ylim(ymax=1,ymin=0)
plt.plot(x_data,y_data,'ro')
plt.show()

具体图为:
二、tensorflow线性拟合实例。_第1张图片

大致形状如图,我们就要构建一个单层的神经网络去描述这些散点图。
下面开始创建tensorflow 结构:

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))
optimizer = tf.train.GradientDescentOptimizer(0.5)
train = optimizer.minimize(loss)
init = tf.initialize_all_variables()

此时结构已经创建结束,先初始化所有变量。

sess = tf.Session()
sess.run(init)

然后训练,并且每二十次迭代显示一次权重和偏置:

for step in range(201):
  sess.run(train)
  if step % 20 ==0:
  print (step, sess.run(Weights), sess.run(biases))

结果如下图:
二、tensorflow线性拟合实例。_第2张图片

你可能感兴趣的:(tensorflow学习)