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学习笔记 下载
Feb 10 Python
Ubuntu下安装PyV8
Mar 13 Python
python去除字符串中的换行符
Oct 11 Python
对tensorflow 的模型保存和调用实例讲解
Jul 28 Python
Python中的Numpy矩阵操作
Aug 12 Python
python 使用matplotlib 实现从文件中读取x,y坐标的可视化方法
Jul 04 Python
Django+uni-app实现数据通信中的请求跨域的示例代码
Oct 12 Python
dpn网络的pytorch实现方式
Jan 14 Python
解决Python中导入自己写的类,被划红线,但不影响执行的问题
Jul 13 Python
PyQt5中QSpinBox计数器的实现
Jan 18 Python
python中子类与父类的关系基础知识点
Feb 02 Python
在python中读取和写入CSV文件详情
Jun 28 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
10个实用的PHP正则表达式汇总
2014/10/23 PHP
PHP上传图片、删除图片简单实例
2016/11/12 PHP
关于flash遮盖div浮动层的解决方法
2010/07/17 Javascript
javascript模拟select,jselect的方法实现
2012/11/08 Javascript
正则表达式搭配js轻松处理json文本方便而老古
2013/02/17 Javascript
GRID拖拽行的实例代码
2013/07/18 Javascript
20个实用的JavaScript技巧分享
2014/11/28 Javascript
学习使用bootstrap基本控件(table、form、button)
2016/04/12 Javascript
javascript 数组的定义和数组的长度
2016/06/07 Javascript
Json对象和字符串互相转换json数据拼接和JSON使用方式详细介绍(小结)
2016/10/25 Javascript
javascript 实现文本使用省略号替代(超出固定高度的情况)
2017/02/21 Javascript
Javascript刷新页面的实例
2017/09/23 Javascript
jQuery实现DIV响应鼠标滑过由下向上展开效果示例【测试可用】
2018/04/26 jQuery
如何获取TypeScript的声明文件.d.ts
2018/05/01 Javascript
NodeJS 中Stream 的基本使用
2018/07/30 NodeJs
vue添加class样式实例讲解
2019/02/12 Javascript
优化Vue项目编译文件大小的方法步骤
2019/05/27 Javascript
node.js命令行教程图文详解
2019/05/27 Javascript
Vue 实例中使用$refs的注意事项
2021/01/29 Vue.js
[02:44]DOTA2英雄基础教程 魅惑魔女
2014/01/07 DOTA
Python 字符串操作方法大全
2014/03/11 Python
Python中的作用域规则详解
2015/01/30 Python
python使用RNN实现文本分类
2018/05/24 Python
Python框架Flask的基本数据库操作方法分析
2018/07/13 Python
使用jupyter Nodebook查看函数或方法的参数以及使用情况
2020/04/14 Python
Python3爬虫ChromeDriver的安装实例
2021/02/06 Python
html svg生成环形进度条的实现方法
2019/09/23 HTML / CSS
Pottery Barn阿联酋:购买家具、家居装饰及更多
2019/12/08 全球购物
办公室文书岗位职责
2013/12/16 职场文书
工程班组长岗位职责
2013/12/30 职场文书
项目投资建议书
2014/05/16 职场文书
大学新生入学教育方案
2014/05/16 职场文书
我与祖国共奋进演讲稿
2014/09/13 职场文书
2014年房地产工作总结范文
2014/11/19 职场文书
岳麓书院导游词
2015/02/03 职场文书
第28个世界无烟日活动总结
2015/02/10 职场文书