二、tensorflow线性拟合实例。

本文通过使用TensorFlow构建单层神经网络来拟合一组线性数据。首先生成了100个随机数据点,然后利用这些数据点训练神经网络以学习线性关系。通过不断迭代调整权重和偏置,最终使神经网络能够准确地描述原始数据。
摘要由CSDN通过智能技术生成

目的,给定一堆(本博客为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 结构:

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))

结果如下图:
这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值