使用TensorFlow BP 网络做线性回归

最近开始接触Tensorflow ,感觉如果不会Deeplearning 就要被淘汰了,所以开始学习tensorflow,然后自己就照着写了一个用BP 做线性回归的例子。
具体代码:
`import tensorflow as tf
import numpy as np
import matplotlib.pyplot as plt

#data
x_data=np.linspace(-0.5,0.5,200)[:,np.newaxis]
noise=np.random.normal(0,0.02,x_data.shape)
y_data=np.square(x_data)+noise
#placeholder
x=tf.placeholder(tf.float32,shape=[None,1])
y=tf.placeholder(tf.float32,shape=[None,1])
#构建模型 BP net Hiding Layer
Weights_L1=tf.Variable(tf.random_normal([1,10]))
Bias_L1=tf.Variable(tf.random_normal([1,10]))
Input_Weights_L1=tf.matmul(x,Weights_L1)+Bias_L1
Output_L1=tf.nn.tanh(Input_Weights_L1)
#BPnet output Layer
Weights_L2=tf.Variable(tf.random_normal([10,1]))
Bias_L2=tf.Variable(tf.random_normal([1,1]))
Input_Weights_L2=tf.matmul(Output_L1,Weights_L2)+Bias_L2
y_predict=tf.nn.tanh(Input_Weights_L2)

#loss function
loss=tf.reduce_mean(tf.square(y_predict-y))
#optimizer
optimizer=tf.train.GradientDescentOptimizer(0.1)
train=optimizer.minimize(loss)

init=tf.global_variables_initializer()
with tf.Session() as sess:
sess.run(init)
for i in range(500):
sess.run(train,feed_dict={x:x_data,y:y_data})
y_predict_value=sess.run(y_predict,feed_dict={x:x_data})
plt.figure()
plt.scatter(x_data,y_data)
plt.plot(x_data,y_predict_value,‘r-’,lw=5)
plt.show()
`
结果
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值