(二) Keras 非线性回归
视频学习来源
https://www.bilibili.com/video/av40787141?from=search&seid=17003307842787199553
笔记
Keras 非线性回归
import keras import numpy as np import matplotlib.pyplot as plt #Sequential按序列构成的模型 from keras.models import Sequential #Dense全连接层 from keras.layers import Dense
#使用numpy生成200个随机点 x_data=np.linspace(-0.5,0.5,200) #均匀分布 noise=np.random.normal(0,0.02,x_data.shape) #均值为0,方差为0.02 y_data=np.square(x_data)+noise #显示随机点 plt.scatter(x_data,y_data) plt.show()
#构建一个顺序模型
model=Sequential()
#在模型中添加一个全连接层
model.add(Dense(units=1,input_dim=1)) #sgd:stochastic gradient descent 随机梯度下降算法
#mse:mean square error 均方误差
model.compile(optimizer='sgd',loss='mse') #训练3000次
for step in range(3000):
#每次训练一个批次
cost=model.train_on_batch(x_data,y_data)
#每500个batch打印一次cost值
if step%500==0:
print('cost:',cost) #x_data输入网络中,得到预测值y_pred
y_pred=model.predict(x_data) #显示随机点
plt.scatter(x_data,y_data)
#显示预测结果
plt.plot(x_data,y_pred,'r-',lw=3)
plt.show()
cost: 0.018438313
cost: 0.006655791
cost: 0.0058503654
cost: 0.0057009794
cost: 0.0056732716
cost: 0.005668133
加入隐藏层
#导入SGD,(后面要修改SGD的值)
from keras.optimizers import SGD
#构建一个顺序模型
model=Sequential()
#在模型中添加 1-10-1 ,一个输入,一个输出,中间10个隐藏层
model.add(Dense(units=10,input_dim=1)) #1-10部分
model.add(Dense(units=1)) #10-1部分 等效 model.add(Dense(units=1,input_dim=10)) #增大sgd算法的学习率,默认值为0.01,
#查看函数默认值可在jupyter中shift+Tab+Tab,前提是已经导入
sgd=SGD(lr=0.3) #学习速率0.3 #sgd:stochastic gradient descent 随机梯度下降算法
#mse:mean square error 均方误差
model.compile(optimizer=sgd,loss='mse') #和上面不同的是没有引号 #训练3000次
for step in range(3000):
#每次训练一个批次
cost=model.train_on_batch(x_data,y_data)
#每500个batch打印一次cost值
if step%500==0:
print('cost:',cost) #x_data输入网络中,得到预测值y_pred
y_pred=model.predict(x_data) #显示随机点
plt.scatter(x_data,y_data)
#显示预测结果
plt.plot(x_data,y_pred,'r-',lw=3)
plt.show()
cost: 0.1012776
cost: 0.005666962
cost: 0.005666963
cost: 0.0056669624
cost: 0.005666963
cost: 0.005666963
设置激活函数
#设置激活函数,默认的激活函数为none也就是输入=输出,线性
from keras.layers import Dense,Activation
#设置激活函数方式1
#激活函数为tanh #构建一个顺序模型
model=Sequential()
#在模型中添加 1-10-1 ,一个输入,一个输出,中间10个隐藏层
model.add(Dense(units=10,input_dim=1)) #1-10部分 model.add(Activation('tanh')) #双曲正切函数 model.add(Dense(units=1)) #10-1部分 等效 model.add(Dense(units=1,input_dim=10)) model.add(Activation('tanh')) #双曲正切函数 #增大sgd算法的学习率,默认值为0.01,
#查看函数默认值可在jupyter中shift+Tab+Tab,前提是已经导入
sgd=SGD(lr=0.3) #学习速率0.3 #sgd:stochastic gradient descent 随机梯度下降算法
#mse:mean square error 均方误差
model.compile(optimizer=sgd,loss='mse') #和上面不同的是没有引号 #训练3000次
for step in range(3000):
#每次训练一个批次
cost=model.train_on_batch(x_data,y_data)
#每500个batch打印一次cost值
if step%500==0:
print('cost:',cost) #x_data输入网络中,得到预测值y_pred
y_pred=model.predict(x_data) #显示随机点
plt.scatter(x_data,y_data)
#显示预测结果
plt.plot(x_data,y_pred,'r-',lw=3)
plt.show()
cost: 0.049393196
cost: 0.003914159
cost: 0.0011130853
cost: 0.00090270495
cost: 0.00040989672
cost: 0.00045533947
#设置激活函数方式2
#激活函数为relu #jupyter中 注释为 ctrl+/ #构建一个顺序模型
model=Sequential()
#在模型中添加 1-10-1 ,一个输入,一个输出,中间10个隐藏层
model.add(Dense(units=10,input_dim=1,activation='relu')) #1-10部分 model.add(Dense(units=1,activation='relu'))#10-1部分 等效 model.add(Dense(units=1,input_dim=10)) #增大sgd算法的学习率,默认值为0.01,
#查看函数默认值可在jupyter中shift+Tab+Tab,前提是已经导入
sgd=SGD(lr=0.3) #学习速率0.3 #sgd:stochastic gradient descent 随机梯度下降算法
#mse:mean square error 均方误差
model.compile(optimizer=sgd,loss='mse') #和上面不同的是没有引号 #训练3000次
for step in range(3000):
#每次训练一个批次
cost=model.train_on_batch(x_data,y_data)
#每500个batch打印一次cost值
if step%500==0:
print('cost:',cost) #x_data输入网络中,得到预测值y_pred
y_pred=model.predict(x_data) #显示随机点
plt.scatter(x_data,y_data)
#显示预测结果
plt.plot(x_data,y_pred,'r-',lw=3)
plt.show()
cost: 0.0066929995
cost: 0.0004892901
cost: 0.00047061846
cost: 0.00046780292
cost: 0.00046706214
cost: 0.00046700903
shift+Tab+Tab 效果如下

(二) Keras 非线性回归的更多相关文章
- Keras 构建DNN 对用户名检测判断是否为非法用户名(从数据预处理到模型在线预测)
一. 数据集的准备与预处理 1 . 收集dataset (大量用户名--包含正常用户名与非法用户名) 包含两个txt文件 legal_name.txt ilegal_name.txt. 如下图所 ...
- 在Keras模型中one-hot编码,Embedding层,使用预训练的词向量/处理图片
最近看了吴恩达老师的深度学习课程,又看了python深度学习这本书,对深度学习有了大概的了解,但是在实战的时候, 还是会有一些细枝末节没有完全弄懂,这篇文章就用来总结一下用keras实现深度学习算法的 ...
- 文本分类:Keras+RNN vs传统机器学习
摘要:本文通过Keras实现了一个RNN文本分类学习的案例,并详细介绍了循环神经网络原理知识及与机器学习对比. 本文分享自华为云社区<基于Keras+RNN的文本分类vs基于传统机器学习的文本分 ...
- 几个可用于数据挖掘和统计分析的java库
http://itindex.net/blog/2015/01/09/1420751820000.html WEKA:WEKA是一个可用于数据挖掘任务的机器学习算法集合.该算法可以直接应用到数据集或从 ...
- Java第三方工具库/包汇总
一.科学计算或矩阵运算库 科学计算包: JMathLib是一个用于计算复杂数学表达式并能够图形化显示计算结果的Java开源类库.它是Matlab.Octave.FreeMat.Scilab的一个克隆, ...
- 深度学习:Keras入门(二)之卷积神经网络(CNN)
说明:这篇文章需要有一些相关的基础知识,否则看起来可能比较吃力. 1.卷积与神经元 1.1 什么是卷积? 简单来说,卷积(或内积)就是一种先把对应位置相乘然后再把结果相加的运算.(具体含义或者数学公式 ...
- keras实现简单性别识别(二分类问题)
keras实现简单性别识别(二分类问题) 第一步:准备好需要的库 tensorflow 1.4.0 h5py 2.7.0 hdf5 1.8.15.1 Keras 2.0.8 opencv-p ...
- keras系列︱Application中五款已训练模型、VGG16框架(Sequential式、Model式)解读(二)
引自:http://blog.csdn.net/sinat_26917383/article/details/72859145 中文文档:http://keras-cn.readthedocs.io/ ...
- 1.keras实现-->自己训练卷积模型实现猫狗二分类(CNN)
原数据集:包含 25000张猫狗图像,两个类别各有12500 新数据集:猫.狗 (照片大小不一样) 训练集:各1000个样本 验证集:各500个样本 测试集:各500个样本 1= 狗,0= 猫 # 将 ...
随机推荐
- uni-app—从安装到卸载
uni-app实现了一套代码,同时运行到多个平台.支持iOS模拟器.Android模拟器.H5.微信开发者工具.支付宝小程序Studio.百度开发者工具.字节跳动开发者工具 工具安装 开发uni-ap ...
- Unity C#笔记 协程
什么是协程 协同程序,在主程序运行的同时,开启另外一段逻辑处理,来协同当前程序的执行. 可能看了这段文字介绍还是有点模糊,其实可以用多线程来比较. 多线程 多线程,顾名思义,多条同时执行的线程. 最初 ...
- 【Matlab&Mathematica】对三维空间上的点进行椭圆拟合
问题是这样:比如有一个地心惯性系的轨道,然后从轨道上取了几个点,问能不能根据这几个点把轨道还原了? 当然,如果知道轨道这几个点的速度的情况下,根据轨道六根数也是能计算轨道的,不过真近点角是随时间变动的 ...
- shell 简单脚本编程
shell脚本编程 编译器,解释器 编程语言: 机器语言,汇编语言,高级语言 静态语言:编译型语言 强类型(变量) 事先转换成可执行格式 C,C++,JAVA,C# 动态语言:解释型语言,on the ...
- IoC和AOP的理解
spring 的优点?1.降低了组件之间的耦合性 ,实现了软件各层之间的解耦 2.可以使用容易提供的众多服务,如事务管理,消息服务等 3.容器提供单例模式支持 4.容器提供了AOP技术,利用它很容易实 ...
- Sql基础(零基础学数据库_SqlServer版)
刚开始学C#时候的笔记,只是些基础的语句如有错误请批评指正,谢谢,(使用SqlServer2012以上) 一. 数据库概述 SQI全称 structrued Query Language 1.数据: ...
- Spring的历史及哲学
Spring的历史和哲学 1.Spring 历史 时间回到2002年,当时正是 Java EE 和 EJB 大行其道的时候,很多知名公司都是采用此技术方案进行项目开发.这时候有一个美国的小伙子认为 E ...
- Python用Django写restful api接口
用Python如何写一个接口呢,首先得要有数据,可以用我们在网站上爬的数据,在上一篇文章中写了如何用Python爬虫,有兴趣的可以看看: https://www.cnblogs.com/sixrain ...
- HTML5 input date属性引起的探索——My97DatePicker(日期选择插件)
不得不说H5的input date属性真的好用,之前我写的http://www.cnblogs.com/tu-0718/p/6729274.html这篇博客里面也有提到,不过虽然移动端对H5的支持还是 ...
- Spring Cloud实战的代码和视频位置
大家好,本博文的连接里包含了Spring Cloud实战的代码和视频位置. 代码下载连接: 视频下载连接: