使用keras实现非线性回归(两种加激活函数的方式)
作者:iamcfb_ 发布时间:2023-07-23 23:33:53
标签:keras,非线性回归,激活,函数
我就废话不多说了,大家还是直接看代码吧~
import keras
import numpy as np
import matplotlib.pyplot as plt
#Sequential 按顺序构成的模型
from keras.models import Sequential#Sequential是模型结构,输入层,隐藏层,输出层
#Dense 全连接层,Activation激活函数
from keras.layers import Dense,Activation
from keras.optimizers import SGD
x_data=np.linspace(-0.5,0.5,200)#从-0.5到0.5范围内生成200个随机点
noise=np.random.normal(0,0.02,x_data.shape)#生成和x_data形状一样的噪声
y_data=np.square(x_data)+noise
#显示随机点
#plt.scatter(x_data,y_data)
#plt.show()
#构建一个顺序模型
model=Sequential()
#1-10-1,添加一个隐藏层
model.add(Dense(units=10,input_dim=1,activation='relu'))#units是隐藏层,输出维度,输出y,input_dim是输入维度,输入x
#model.add(Activation('tanh'))#给这一层添加一个双曲正切激活函数tanh函数
model.add(Dense(units=1,input_dim=10,activation='relu'))#input_dim可以不写,它可以识别到上一句的输出是10维
#model.add(Activation('tanh'))#给这一层添加一个双曲正切激活函数tanh函数
#定义优化器
sgd=SGD(lr=0.3)#学习率提高到0.3,训练速度会加快
model.compile(optimizer=sgd,loss='mse')#编译这个模型,sgd是随机梯度下降法,优化器.mse是均方误差
#训练模型
for step in range(5001):
#每次训练一个批次
cost=model.train_on_batch(x_data,y_data)#代价函数的值,其实就是loss
#每500个batch打印一次cost值
if step %500==0:
print('cost:',cost)
#打印权值和偏置值
W,b=model.layers[0].get_weights()#线性回归,只有一层
print('W:',W,'b:',b)
#x_data输入网络中,得到预测值y_pred
y_pred=model.predict(x_data)
#显示随机点s
plt.scatter(x_data,y_data)
#显示预测结果
plt.plot(x_data,y_pred,'r-',lw=3)#r-表示红色的线,lw表示线宽
plt.show()
结果:
cost: 0.0077051604
cost: 0.0004980223
cost: 0.00047812634
cost: 0.00047762066
cost: 0.00047761563
cost: 0.00047761557
cost: 0.0004776156
cost: 0.0004776156
cost: 0.0004776156
cost: 0.00047761566
cost: 0.0004776156
W: [[ 0.37828678 0.37509003 0.1847014 -0.46519393 -0.6347979 -0.70865685
0.55382997 -0.66780925 0.08229994 0.5980157 ]] b: [-0.00412499 -0.01216194 0.01939214 -0.03005166 -0.00475936 -0.00794064
-0.00015427 -0.01620528 0.08056344 -0.01741577]
来源:https://blog.csdn.net/iamcfb_/article/details/87461442
0
投稿
猜你喜欢
- CSS Type set是一款在线字体调整工具。你可以使用它来对字型进行排版调整并实时的看到CSS代码。在下图中,其中,你可以设置文本的字体
- Web网站可用性的关键指标是速度,更确切地说,是页面能以多快的速度出现在访问者的浏览器窗口里。影响速度的因素有很多种,包括Web服务器的速度
- 应用目标:制作文字特效 应用软件:Dreamweaver MX操作难度:★★☆☆☆我们常用的网页制作工具Dreamweaver MX不仅可以
- 引子:今天在蓝点看了Yang的博客《CSS样式表中继承关系的空格与不空格》,思考了一下,本来想写《CSS样式的复合定义与复合调用及简单的模块
- 最近有点审美疲劳,以往看起来觉得漂亮的界面现在觉得很一般,以前觉得看来还行的界面现在觉得很丑了。想来是时候休息一下了。唯美觉得上次做的OA登
- 以图像处理见长的微软Live实验室,最近发布了一款新作:Pivot。装完启动后的第一印象就是一款浏览器,和IE、FF、Chrome又不太一样
- <P><HTML><HEAD><TITLE>javascriptboy</TITLE&
- 代码如下:<% set rs=server.createobject("adodb.recordset&
- 平时在PL/SQL中的编程中遇到一些问题,这里以问答的形式来进行把它们总结下来,以供大家分享。1、当需要向表中装载大量的数据流或者需要处理大
- 输入汉字提示拼音,试试下面这个函数,不知是不是你要的那个:查询汉字便宜到词典网<%function getpychar(ch
- select * from V$NLS_PARAMETERS; SQL> alter session set NLS_DATE_LAN
- ASP.net处理文件上传就简单的多了,我呢也是在学习中,顺便写写学习笔记。 先在表单中添加enctype="multipart/
- 进行访问MySQL数据库的方法有很多种,下面将向大家介绍一些很简单实用的用的方法和示例与大家一起分享。方法一:使用MYSQL推出的MySQL
- ASP开发网页牢记注意事项 选择自 RAINMAN_NET&
- Q. How can I restrict access to my SQL Server so that it only allows c
- 在前后端分离是大趋势的背景下,前端获取数据都是通过调用后台的接口来获取数据微服务的应用越来越多。Django是Python进行web应用开发
- 随着jQuery、Mootools、prototype等知名的JavaScript框架的应用变的越来越强大,浏览器对最新版本CSS属性的支持
- MySQL 提供了一个很有意思的Engine:Federated!如果你了解Linux下面的Link的话,就应该很好理解这个Federate
- 解决办法: 1.新建一个同名的数据库(数据文件与原来的要一致) 2.再停掉sql server(注意不要分离数据库) 3.用原数据库的数据文
- 客户端调用XMLHTTP的过程很简单,只有5个步骤: 1、创建XMLHTTP对象 2、打开与服务端的连接,同时定义指令发送方式,服务网页(U