Tensorflow实现神经网络拟合线性回归


Posted in Python onJuly 19, 2019

本文实例为大家分享了Tensorflow实现神经网络拟合线性回归的具体代码,供大家参考,具体内容如下

一、利用简单的一层神经网络拟合一个函数 y = x^2 ,其中加入部分噪声作为偏置值防止拟合曲线过拟合

import tensorflow as tf
import numpy as np
import matplotlib.pyplot as plt
 
# 生成-0.5到0.5间均匀发布的200个点,将数据变为二维,200行一列的数据
x_data = np.linspace(-0.5, 0.5, 200)[:, np.newaxis]
 
# 生成一些噪音数据
noise = np.random.normal(0, 0.02, x_data.shape)
 
# 定义y与x的关系
y_data = np.square(x_data) + noise
 
# 定义两个占位符
x = tf.placeholder(tf.float32, [None, 1]) # 形状为n行1列,同x_data的shape
y = tf.placeholder(tf.float32, [None, 1])
 
# 定义神经网络
 
# 定义中间层,因为每个x是一维,所以只需1个神经元,定义中间层的连接神经元是10
# 矩阵:[a, b]×[b, c] = [a, c] 
L1_weights = tf.Variable(tf.random_normal([1, 10])) 
L1_bias = tf.Variable(tf.zeros([1, 10]))
L1_weights_bias = tf.matmul(x, L1_weights) + L1_bias
L1 = tf.nn.tanh(L1_weights_bias)
 
# 定义输出层,每个x只有一个神经元
L2_weights = tf.Variable(tf.random_normal([10, 1]))
L2_bias = tf.Variable(tf.zeros([1, 1]))
L2_weights_bias = tf.matmul(L1, L2_weights) + L2_bias
L2 = tf.nn.tanh(L2_weights_bias)
 
# 定义损失函数
loss = tf.reduce_mean(tf.square(y - L2))
 
# 梯度下降最小化损失函数
optimizer = tf.train.GradientDescentOptimizer(0.1)
 
train_step = optimizer.minimize(loss)
 
# 全局变量初始化
init = tf.global_variables_initializer()
 
# 定义会话
with tf.Session() as sess:
 sess.run(init)
 for _ in range(2000):
  sess.run(train_step, feed_dict={x:x_data, y:y_data})
  
 # 获取预测值
 predict = sess.run(L2, feed_dict={x:x_data})
 
 # 画图
 plt.figure()
 # 画出散点
 plt.scatter(x_data, y_data)
 # 画出拟合的曲线
 plt.plot(x_data, predict)
 
 plt.show()

二、代码运行效果如下:

Tensorflow实现神经网络拟合线性回归

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python使用xmlrpc实例讲解
Dec 17 Python
用Python解析XML的几种常见方法的介绍
Apr 09 Python
进一步理解Python中的函数编程
Apr 13 Python
Python中django学习心得
Dec 06 Python
virtualenv 指定 python 解释器的版本方法
Oct 25 Python
Python第三方Window模块文件的几种安装方法
Nov 22 Python
Python Numpy库安装与基本操作示例
Jan 08 Python
Django使用AJAX调用自己写的API接口的方法
Mar 06 Python
Python实现九宫格式的朋友圈功能内附“马云”朋友圈
May 07 Python
python实时检测键盘输入函数的示例
Jul 17 Python
jupyter notebook 的工作空间设置操作
Apr 20 Python
能让Python提速超40倍的神器Cython详解
Jun 24 Python
使用TensorFlow实现简单线性回归模型
Jul 19 #Python
详解将Python程序(.py)转换为Windows可执行文件(.exe)
Jul 19 #Python
简单了解django缓存方式及配置
Jul 19 #Python
python实现最小二乘法线性拟合
Jul 19 #Python
这可能是最好玩的python GUI入门实例(推荐)
Jul 19 #Python
python如何实现数据的线性拟合
Jul 19 #Python
django获取from表单multiple-select的value和id的方法
Jul 19 #Python
You might like
php PDO中文乱码解决办法
2009/07/20 PHP
php隐藏IP地址后两位显示为星号的方法
2014/11/21 PHP
PHP中的类型提示(type hinting)功能介绍
2015/07/01 PHP
无语,javascript居然支持中文(unicode)编程!
2007/04/12 Javascript
javascript 设置某DIV区域内的checkbox复选框
2009/11/30 Javascript
IE6下出现JavaScript未结束的字符串常量错误的解决方法
2010/11/21 Javascript
js对象数组按属性快速排序
2011/01/31 Javascript
多种方法判断Javascript对象是否存在
2013/09/22 Javascript
将字符串中由空格隔开的每个单词首字母大写
2014/04/06 Javascript
javascript学习笔记(二)数组和对象部分
2014/09/30 Javascript
node.js中的querystring.unescape方法使用说明
2014/12/10 Javascript
纯javascript实现自动发送邮件
2015/10/21 Javascript
KnockoutJS 3.X API 第四章之数据控制流with绑定
2016/10/10 Javascript
jQuery利用sort对DOM元素进行排序操作
2016/11/07 Javascript
vue中如何动态绑定图片,vue中通过data返回图片路径的方法
2018/02/07 Javascript
小程序scroll-view组件实现滚动的示例代码
2018/09/20 Javascript
JS实现斐波那契数列的五种方式(小结)
2020/09/09 Javascript
前端性能优化建议
2020/09/17 Javascript
决策树的python实现方法
2014/11/18 Python
Python实现变量数值交换及判断数组是否含有某个元素的方法
2017/09/18 Python
在python win系统下 打开TXT文件的实例
2018/04/29 Python
Python实现合并两个列表的方法分析
2018/05/28 Python
对pandas中iloc,loc取数据差别及按条件取值的方法详解
2018/11/06 Python
Python解决线性代数问题之矩阵的初等变换方法
2018/12/12 Python
Python3实现定时任务的四种方式
2019/06/03 Python
Python实现图像去噪方式(中值去噪和均值去噪)
2019/12/18 Python
AmazeUI 缩略图的实现示例
2020/08/18 HTML / CSS
内勤主管岗位职责
2014/04/03 职场文书
旅游文化节策划方案
2014/06/06 职场文书
2014年保安个人工作总结
2014/11/13 职场文书
2015年煤矿工作总结
2015/04/28 职场文书
在Windows下安装配置CPU版的PyTorch的方法
2021/04/02 Python
Python自动化之批量处理工作簿和工作表
2021/06/03 Python
Vue中Object.assign清空数据报错的解决方案
2022/03/03 Vue.js
MongoDB数据库部署环境准备及使用介绍
2022/03/21 MongoDB
Mysql超详细讲解死锁问题的理解
2022/04/01 MySQL