TensorFlow实现非线性回归
利用 y = x ^2 + noise 生成数据,并利用数据对一个简单的只具有单层隐层(10个神经元)的神经网络进行训练。输入输出个一个神经元。代码如下
import os
import tensorflow as tf
import numpy as np
import matplotlib.pyplot as pltos.environ["TF_CPP_MIN_LOG_LEVEL"] = '2' # 只显示 warning 和 Errorx_data = np.linspace(0, 1, 200)[:, np.newaxis] # np.newaxis表示在第二维度增加一维
noise = np.random.normal(0, 0.01, x_data.shape) #高斯分布, 0 表示均值, 0.1 表示标准差 最后是shape
y_data = noise - np.square(x_data)# 构建神经网络
# 1 10 1
# 输入层1个神经元
# 中间隐层10个神经元
# 输出层1个神经元# 定义两个占位符
x = tf.placeholder(tf.float32, [None, 1], name='x')
y = tf.placeholder(tf.float32, [None, 1], name='y')#
# 定义权值矩阵, 输入层与隐层之间的权值矩阵
input_2_hidden_w = tf.Variable(tf.truncated_normal([1,10]))
hidden_bias = tf.Variable(tf.zeros([1,10]))
hidden_out = tf.matmul(x,input_2_hidden_w) + hidden_bias
activation_hidden_out = tf.nn.tanh(hidden_out)# 定义权值矩阵, 隐层与输出层之间的权值矩阵
hidden_2_output_w = tf.Variable(tf.truncated_normal([10,1]))
out_bias = tf.Variable(tf.zeros([1,1]))
out_pure = tf.matmul(activation_hidden_out, hidden_2_output_w) + out_bias
prediction = tf.nn.tanh(out_pure) # 双曲正切# 定义loss
loss = tf.reduce_mean(tf.square(y - prediction))
# 利用随机梯度下降优化器优化loss
train_step = tf.train.GradientDescentOptimizer(0.1).minimize(loss)with tf.Session() as sess:sess.run(tf.global_variables_initializer())for _ in range(10000):sess.run(train_step,feed_dict={x:x_data, y:y_data})prediction = sess.run(prediction,feed_dict={x:x_data})plt.figure() # 建立画布plt.scatter(x_data,y_data) # 利用真值数据画散点图plt.plot(x_data, prediction, 'r-', lw=2) # 利用预测数据画曲线图,实线,线宽为2plt.show() # 显示所画的图
结果如下图所示
TensorFlow实现非线性回归相关推荐
- tensorflow随笔-非线性回归
#!/usr/bin/env python2 # -*- coding: utf-8 -*- """ Created on Sat Sep 15 10:54:53 201 ...
- 热度直逼TensorFlow的深度学习框架,我用它画下女朋友最美的脸
这不,又一个程序员为爱变身灵魂画手,看得我都想学画画了. 阿华是幸运的,因为他找到了对的方法,事半功倍,最终有情人终成眷属.这也得益于 PyTorch 的易学易用,大多数人第一次使用 PyTorch ...
- 【原创 深度学习与TensorFlow 动手实践系列 - 2】第二课:传统神经网络
第二课 传统神经网络 <深度学习>整体结构: 线性回归 -> 神经网络 -> 卷积神经网络(CNN)-> 循环神经网络(RNN)- LSTM 目标分类(人脸识别,物品识别 ...
- 线性回归非线性回归_了解线性回归
线性回归非线性回归 Let's say you're looking to buy a new PC from an online store (and you're most interested ...
- tensorflow3 非线性回归、mnist、简单神经网络
mnist数据集 手写数字的数据集. 60000行训练数据集,10000行测试数据集 下载地址:http://yann.lecun.com/exdb/mnist/index.html mnist数据集 ...
- 使用 TensorFlow 构建机器学习项目中文版
使用 TensorFlow 构建机器学习项目中文版 第 1 章 探索和转换数据 TensorFlow 的主要数据结构 – 张量 处理计算工作流程 – TensorFlow 的数据流程图 运行我们的程序 ...
- tensorflow 1.x Saver(保存与加载模型) 预测
20201231 tensorflow 1.X 模型保存 https://blog.csdn.net/qq_35290785/article/details/89646248 保存模型 saver=t ...
- python 虚拟环境 tensorflow GPU
拿到一个新的容器之后,怎么创建一个独立的GPU训练环境呢?之前弄的时候总是零零散散的,现在把它总结在这里,供自己以及有需要的朋友查阅. conda创建 1.1 下载anaconda wget -c h ...
- API pytorch tensorflow
pytorch与tensorflow API速查表 方法名称 pytroch tensorflow numpy 裁剪 torch.clamp(x, min, max) tf.clip_by_value ...
最新文章
- gaokao--抓取高校基本信息
- 5.2.1 OS内核的I/O核心子系统及功能
- 趣味教程:从女娲造人谈类、属性、方法及实例
- 如何管理好IDC机房?(一)
- 数据结构排序算法总结
- Java如何给ServerSocket绑定指定IP地址
- 常见分布及其概率分布图
- 不小心把桌面上的计算机图标删了怎么办,如何删除桌面图标,不小心把桌面上的我的电脑图标删除了怎么办...
- android组件化管理单例,Pigeon——支持增量编译和组件化开发的路由框架
- python安装第三方库超时
- “蔚来杯“2022牛客暑期多校训练营1 J Serval and Essay(启发式合并)
- mysql数据封装是什么_MySql数据封装操作类
- 钉钉创建单人群、双人群及钉钉自定义机器人的初步使用(附python3代码)
- 超全的iOS面试题汇总
- 模拟电子技术(二)基本放大电路
- SQL中的limit用法
- com.google.zxing 二维码工具类
- 初次使用liteide,报错: 进程无法启动
- 非关系型数据库 之 文档型数据库 MongoDB 的使用(Python3)
- 代码随想录训练营day52