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的Tornado框架实现一个Web端图书展示页面
Jul 11 Python
Python正则表达式如何进行字符串替换实例
Dec 28 Python
Windows下Python2与Python3两个版本共存的方法详解
Feb 12 Python
Python中将变量按行写入txt文本中的方法
Apr 03 Python
pyqt弹出新对话框,以及关闭对话框获取数据的实例
Jun 18 Python
Python实现钉钉订阅消息功能
Jan 14 Python
Python实现不规则图形填充的思路
Feb 02 Python
Python 如何对文件目录操作
Jul 10 Python
如何在python中实现线性回归
Aug 10 Python
python实现AdaBoost算法的示例
Oct 03 Python
如何向scrapy中的spider传递参数的几种方法
Nov 18 Python
Python3 类型标注支持操作
Jun 02 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
火车头采集器3.0采集图文教程
2007/03/17 PHP
php-fpm.conf配置文件中文说明详解及重要参数说明
2018/10/10 PHP
PHP实现获取文件mime类型多种方法解析
2020/05/28 PHP
javascript中对对层的控制
2006/12/29 Javascript
纯CSS打造的导航菜单(附jquery版)
2010/08/07 Javascript
js添加table的行和列 具体实现方法
2013/07/22 Javascript
checkbox使用示例
2013/08/23 Javascript
javascript中的=等号个数问题两个跟三个有什么区别
2013/10/23 Javascript
JS获取月的最后一天与JS得到一个月份最大天数的实例代码
2013/12/16 Javascript
JS控制输入框内字符串长度
2014/05/21 Javascript
jQuery解决input超多的表单提交
2015/08/10 Javascript
WordPress 单页面上一页下一页的实现方法【附代码】
2016/03/10 Javascript
jquery自定义插件——window的实现【示例代码】
2016/05/06 Javascript
14 个折磨人的 JavaScript 面试题
2016/08/08 Javascript
d3.js实现立体柱图的方法详解
2017/04/28 Javascript
最常用的jQuery表单验证(简单)
2017/05/23 jQuery
nodejs 图片预览和上传的示例代码
2017/09/30 NodeJs
vue脚手架及vue-router基本使用
2018/04/09 Javascript
详解vue中点击空白处隐藏div的实现(用指令实现)
2018/04/19 Javascript
JS数组实现分类统计实例代码
2018/09/30 Javascript
NodeJS使用Range请求实现下载功能的方法示例
2018/10/12 NodeJs
Javascript原型链及instanceof原理详解
2020/05/25 Javascript
微信小程序实现导航栏和内容上下联动功能代码
2020/06/29 Javascript
Python标准库笔记struct模块的使用
2018/02/22 Python
python微元法计算函数曲线长度的方法
2018/11/08 Python
使用Python轻松完成垃圾分类(基于图像识别)
2019/07/09 Python
浅谈python输出列表元素的所有排列形式
2020/02/26 Python
美国中小型企业领先的办公家具供应商:Office Designs
2016/11/26 全球购物
初中生学习的自我评价
2013/11/14 职场文书
赔偿协议书范本
2014/04/15 职场文书
团日活动总结模板
2014/06/25 职场文书
党员群众路线整改措施及今后努力方向
2014/10/28 职场文书
2014年底工作总结
2014/12/15 职场文书
APP界面设计技巧和注意事项
2022/04/29 杂记
Python实现双向链表基本操作
2022/05/25 Python
前端canvas中物体边框和控制点的实现示例
2022/08/05 Javascript