简单的Tensorflow(5):回归分析
来源:互联网 发布:澳洲买mac便宜吗 编辑:程序博客网 时间:2024/06/05 10:48
至于什么是线性和非线性,最早出现在信号系统当中,是针对齐次性,叠加性等提出的,不懂的简单理解是直线即可。要对一堆数据进行模型分析,当我们看到一堆这样的数据时,第一反应这绝壁是一个二次函数。
首先我们来实现这些函数的实现:这里需要引入一个numpy库
设置一个一维数组,让这个数组是呈等价递增,并增加一个维度,可以理解为上图中的x轴。x_data = numpy.linspace(-0.5, 0.5, 200)[:,np.newaxis]
设置噪声,也可理解为上下波动,noise = np.random.normal(0,0.02,x_data.shape)
设置y_data,y_data = np.square(x_data) + noise
到这里所有的数据已经完全产生,接下来的工作就是显示出来和训练出这个模型
这次不用函数模型,直接用一个神经网络来训练这个模型:
定义两个占位符,x和y,一个当作输入一个当作输出,用来训练网络
x = tf.placeholder(tf.float32,[None,1])
y = tf.placeholder(tf.float32,[None,1])
定义网络中间网络层,包括权重Weight和偏差Biase,(和x输入连接的部分)
Weights_L = tf.Variable(tf.random_normal([1,10]))
Biases_L = tf.Variable(tf.zeros([1,1]))
Result_L = tf.matmul(x,Weights_L) + Biases_L
L = tf.nn.tanh(Result_L)
定义和y输入连接的部分
Weights_R = tf.Variable(tf.random_normal([10,1]))
Biases_R = tf.Variable(tf.zeros([1,1]))
Result_R = tf.matmul(L,Weights_R) + Biases_R
R = tf.nn.tanh(Result_R)
网络设置完成之后就用字典填充准备的数据来训练网络:
sess.run(train,feed_dict={x:x_data,y:y_data})
训练完成之后再次将x_data填入得到自己预测的值
prediction = sess.run(R,feed_dict={x:x_data})
画图的部分使用matplotlib.pyplot即可,很简单。
全部代码:
import tensorflow as tfimport numpy as npimport matplotlib.pyplot as plt#设置一个一维数组,让这个数组是呈等价递增,并增加一个维度x_data = np.linspace(-0.5, 0.5, 200)[:,np.newaxis]#print(x_data)#设置波动,也可称为噪音noise = np.random.normal(0,0.02,x_data.shape)#print(noise)#设置y_datay_data = np.square(x_data) + noise#print(y_data)#定义两个占位符,x和y,一个当作输入一个当作输出,用来训练网络x = tf.placeholder(tf.float32,[None,1])y = tf.placeholder(tf.float32,[None,1])#定义网络中间网络层,包括权重Weight和偏差Biase#定义和x输入连接的部分Weights_L = tf.Variable(tf.random_normal([1,10]))Biases_L = tf.Variable(tf.zeros([1,1]))Result_L = tf.matmul(x,Weights_L) + Biases_LL = tf.nn.tanh(Result_L)#定义和y输入连接的部分Weights_R = tf.Variable(tf.random_normal([10,1]))Biases_R = tf.Variable(tf.zeros([1,1]))Result_R = tf.matmul(L,Weights_R) + Biases_RR = tf.nn.tanh(Result_R)#设置代价函数loss = tf.reduce_mean(tf.square(y-R))#设置优化器optimizer = tf.train.GradientDescentOptimizer(0.1)#设置最小代价函数train = optimizer.minimize(loss)#设置初始化变量init = tf.global_variables_initializer()#设置会话with tf.Session() as sess: sess.run(init) for step in range(2000): sess.run(train,feed_dict={x:x_data,y:y_data}) #获取预测值 prediction = sess.run(R,feed_dict={x:x_data}) #画图 plt.figure() plt.scatter(x_data,y_data) plt.plot(x_data,prediction,'-r',lw=5) plt.show()
结果是:
- 简单的Tensorflow(5):回归分析
- Tensorflow | 回归分析
- 【TensorFlow】TensorFlow的线性回归
- tensorflow搭建简单回归模型
- 简单的线性回归问题-TensorFlow+MATLAB·
- 使用TensorFlow实现简单的线性回归(LinearRegression)
- TensorFlow实现一个简单的线性回归预测
- R 语言与简单的回归分析
- R 语言与简单的回归分析
- TensorFlow中global_step的简单分析
- 简单的Tensorflow(4):线性模型分析
- tensorflow入门Day1-简单线性回归
- tensorflow实现基本的回归
- tensorflow构建神经网络回归分析可视化
- tensorflow实现softmax回归(softmax regression)——简单的MNIST识别(第一课)
- [深度学习] (2):实现简单的线性回归(使用TensorFlow优化)
- 简单线性回归分析【笔记】
- R语言-简单回归分析
- 【工业互联网】工业互联网发展态势与展望
- TX2 USB串口驱动ttyACM模块 通过编译内核设置
- 【机器视觉】计算机视觉这一年:这是最全的一份CV技术报告
- spring.xml 配置文件
- 【智能医疗】发挥人类想象力和创造力,如何实现智能医疗?
- 简单的Tensorflow(5):回归分析
- Python 中两个字典(dict)合并
- 基于jquery的上传文件插件ajaxUpload
- 生成公众号永久二维码,php开发微信公众号永久二维码
- CentOS/Linux 解决 SSH 连接慢
- Git的工作原理
- 【数据科学】迄今最全面的数据科学应用总结:16个分析学科及落地应用
- jdbc 配置
- 【人工智能】未来5年AI应用报告:谷歌、DeepMind、英伟达科学家支招企业AI应用