使用神经网络来拟合函数y = x^3 +b
我们使用一个三层的小网络来,模拟函数y = x^3+b函数
import tensorflow as tf
import numpy as np
import matplotlib.pyplot as plt #训练数据
x_data = np.linspace(-6.0,6.0,30)[:,np.newaxis]
y_data = np.power(x_data,3) + 0.7
#验证数据
t_data = np.linspace(-20.0,20.0,40)[:,np.newaxis]
ty_data = np.power(t_data,3) + 0.7
#占位符
x = tf.placeholder(tf.float32,[None,1])
y = tf.placeholder(tf.float32,[None,1]) #network
#--layer one--
l_w_1 = tf.Variable(tf.random_normal([1,10]))
l_b_1 = tf.Variable(tf.zeros([1,10]))
l_fcn_1 = tf.matmul(x, l_w_1) + l_b_1
relu_1 = tf.nn.relu(l_fcn_1)
#---layer two----
l_w_2 = tf.Variable(tf.random_normal([10,20]))
l_b_2 = tf.Variable(tf.zeros([1,20]))
l_fcn_2 = tf.matmul(relu_1, l_w_2) + l_b_2
relu_2 = tf.nn.relu(l_fcn_2) #---output---
l_w_3 = tf.Variable(tf.random_normal([20,1]))
l_b_3 = tf.Variable(tf.zeros([1,1]))
l_fcn_3 = tf.matmul(relu_2, l_w_3) + l_b_3
#relu_3 = tf.tanh(l_fcn_3)
# init
init = tf.global_variables_initializer()
#定义 loss func
loss = tf.reduce_mean(tf.square(y-l_fcn_3))
learn_rate =0.001
train_step = tf.train.GradientDescentOptimizer(learn_rate).minimize(loss) with tf.Session() as sess:
sess.run(init);
for epoch in range(20):
for step in range(5000):
sess.run(train_step,feed_dict={x:x_data,y:y_data})
y_pred = sess.run(l_fcn_3,feed_dict={x:t_data})
print sess.run(l_fcn_3,feed_dict={x:[[10.]]})
plt.figure()
plt.scatter(t_data,ty_data)
plt.plot(t_data,y_pred,'r-')
plt.show()
[[ 533.45062256]]
使用神经网络来拟合函数y = x^3 +b的更多相关文章
- matlab最小二乘法数据拟合函数详解
定义: 最小二乘法(又称最小平方法)是一种数学优化技术.它通过最小化误差的平方和寻找数据的最佳函数匹配.利用最小二乘法可 以简便地求得未知的数据,并使得这些求得的数据与实际数据之间误差的平方和为最小. ...
- matlab-非线性拟合函数lsqcurvefit的使用和初值选取
所解决问题: 我们知道我们的表达式是y=A+B*exp(-x.^2)-C./log(x), 而且现在我们手里面有x与y对应的一大把数据. 我们需要根据x, y的值找出最佳的A.B.C值.则我们现在借助 ...
- cftool拟合&函数逼近
cftool拟合&函数逼近 cftool 真是神奇,之前我们搞的一些线性拟合解方程,多项式拟合,函数拟合求参数啊,等等. 已经超级多了,为啥还得搞一个cftool拟合啊?而且毫无数学理论. 如 ...
- matlab的拟合函数polyfit()函数
matlab的多项式拟合: polyfit()函数 功能:在最小二乘法意义之上,求解Y关于X的最佳的N次多项式函数. clc;clear; close all; x=[ ]; y=[2.7 7.4 2 ...
- 函数 y=x^x的分析
关于函数 y=xx的分析: 由图像得,y在负无穷大到0图像处处不连续,故y的定义域为(0,正无穷大): 故该函数不就是y=e^(lnxx)吗? 1.定义域:我们变形一下,y=e^(xlnx),显然是0 ...
- 2、函数y=f(x)
/* Note:Your choice is C IDE */ #include "stdio.h" /* 3.函数y=f(x)可表示为: */ void main() { int ...
- 2017年全国卷3的21题与2018年全国卷3的21题命题背景是同一个函数$y=\frac{2x}{\ln(x+1)}$(再次瞎谈)
2017年四川高考数学(全国卷3)理科21题第1问 已知函数\(f(x)=x-1-a\ln x\) (1)若\(f(x)\geqslant 0\),求\(a\)的值\(.\) 该不等式等价于$a\ln ...
- 神经网络可以拟合任意函数的视觉证明A visual proof that neural nets can compute any function
One of the most striking facts about neural networks is that they can compute any function at all. T ...
- C# + Matlab 实现计件工时基于三层BP神经网络的拟合--真实项目
工序工时由该工序的工艺参数决定,有了工时后乘以固定因子就是计件工资.一般参考本地小时工资以及同类小时工资并考虑作业的风险等因素给出固定因子 采用的VS2010 , Matlab2015a 64, 开 ...
随机推荐
- Requests模块 HTTP for Humans
安装方式 $ pip install requests 基本GET请求(headers参数 和 parmas参数) 1.最基本的GET请求可以直接用get方法 response = requests. ...
- gunicorn 信号处理(SIGHUP,SIGUSR2)
在这篇文章中,提到了Master进程对信号的处理函数,其中有两个信号比较有意思. SIGHUP:用来热更新(Reload)应用 SIGUSR2:用来在线升级(upgrade on the fly)gu ...
- Sublime Text编辑器 + vim插件
Sublime安装 Sublime Text 是一个代码编辑器.Sublime Text是由程序员Jon Skinner于2008年1月份所开发出来,它最初被设计为一个具有丰富扩展功能的Vim. Su ...
- ES6之Symbol
ES6中Symbol是为了防止属性名冲突而引入的,是独一无二的.Symbol值是通过Symbol函数生成.Symbol值不能与其他类型的值运算否则会报错且Symbol的值可以转换为字符串或者是布尔值但 ...
- 利用VSTS跟Kubernetes进行CI/CD
准备VSTS管理环境 首先我们需要到www.visualstudio.com下申请好的VSTS账号,然后在账号下创建一个用Git作为代码管理的项目 创建好项目后我们就可以利用git clone将代码库 ...
- 聚簇(或者叫做聚集,cluster)索引和非聚簇索引
字典的拼音目录就是聚簇(cluster)索引,笔画目录就是非聚簇索引.这样查询“G到M的汉字”就非常快,而查询“6划到8划的字”则慢. 聚簇索引是一种特殊索引,它使数据按照索引的排序顺序存放表中.聚簇 ...
- dJango前言之 socketserver源码
socketserver源码分析: ftpserver=socketserver.ThreadingTCPServer(('127.0.0.1',8080),FtpServer) ftpserver. ...
- [Micropython]TPYBoardV102 Dfu固件烧写教程
TPYBoardv10x固件烧写一直是大家比较关心的问题,上次教大家用SWD接口烧写TPYBoard的固件,这次教大家用另一种方式烧写我们TPYBoardv10x的固件,直接用dfu模式烧写固件. 用 ...
- vue实现星级评价效果
希望对你们有用,已经自己试过可以的才发布出来的 效果如下: html: <template> <div class="evaStar"> <ul cl ...
- ORM框架 EF - code first 的封装 优化一
上一节我们讲到对EF(EntityFramework)的初步封装,任何事情都不可能一蹴而就,通过大量的实际项目的实战,也发现了其中的各种问题.在这一章中,我们对上一章的EF_Helper_DG进行优化 ...