视频学习来源

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 非线性回归的更多相关文章

  1. Keras 构建DNN 对用户名检测判断是否为非法用户名(从数据预处理到模型在线预测)

    一.  数据集的准备与预处理 1 . 收集dataset (大量用户名--包含正常用户名与非法用户名) 包含两个txt文件  legal_name.txt  ilegal_name.txt. 如下图所 ...

  2. 在Keras模型中one-hot编码,Embedding层,使用预训练的词向量/处理图片

    最近看了吴恩达老师的深度学习课程,又看了python深度学习这本书,对深度学习有了大概的了解,但是在实战的时候, 还是会有一些细枝末节没有完全弄懂,这篇文章就用来总结一下用keras实现深度学习算法的 ...

  3. 文本分类:Keras+RNN vs传统机器学习

    摘要:本文通过Keras实现了一个RNN文本分类学习的案例,并详细介绍了循环神经网络原理知识及与机器学习对比. 本文分享自华为云社区<基于Keras+RNN的文本分类vs基于传统机器学习的文本分 ...

  4. 几个可用于数据挖掘和统计分析的java库

    http://itindex.net/blog/2015/01/09/1420751820000.html WEKA:WEKA是一个可用于数据挖掘任务的机器学习算法集合.该算法可以直接应用到数据集或从 ...

  5. Java第三方工具库/包汇总

    一.科学计算或矩阵运算库 科学计算包: JMathLib是一个用于计算复杂数学表达式并能够图形化显示计算结果的Java开源类库.它是Matlab.Octave.FreeMat.Scilab的一个克隆, ...

  6. 深度学习:Keras入门(二)之卷积神经网络(CNN)

    说明:这篇文章需要有一些相关的基础知识,否则看起来可能比较吃力. 1.卷积与神经元 1.1 什么是卷积? 简单来说,卷积(或内积)就是一种先把对应位置相乘然后再把结果相加的运算.(具体含义或者数学公式 ...

  7. keras实现简单性别识别(二分类问题)

    keras实现简单性别识别(二分类问题) 第一步:准备好需要的库 tensorflow  1.4.0 h5py 2.7.0 hdf5 1.8.15.1 Keras     2.0.8 opencv-p ...

  8. keras系列︱Application中五款已训练模型、VGG16框架(Sequential式、Model式)解读(二)

    引自:http://blog.csdn.net/sinat_26917383/article/details/72859145 中文文档:http://keras-cn.readthedocs.io/ ...

  9. 1.keras实现-->自己训练卷积模型实现猫狗二分类(CNN)

    原数据集:包含 25000张猫狗图像,两个类别各有12500 新数据集:猫.狗 (照片大小不一样) 训练集:各1000个样本 验证集:各500个样本 测试集:各500个样本 1= 狗,0= 猫 # 将 ...

随机推荐

  1. [翻译 EF Core in Action 1.7] MyFirstEfCoreApp访问的数据库

    Entity Framework Core in Action Entityframework Core in action是 Jon P smith 所著的关于Entityframework Cor ...

  2. selinux学习

    一.基本概念 1.TE模型的安全上下文 所有的操作系统访问控制都基于主体.客体,以及与他们相关的访问控制属性. 在selinux中,访问控制属性叫做安全上下文.所有对象(文件.进程间通信通道.套接字. ...

  3. Docker入门(三)使用Docker Compose

    Compose介绍   Compose 项目是 Docker 官方的开源项目,负责实现对 Docker 容器集群的快速编排.Compose 是一个用户定义和运行多个容器的 Docker 应用程序.在 ...

  4. 对 MES 感兴趣?赶紧看过来!

    在知乎许久都没有智能制造话题,索性自己在 2018-06-08 创建了智能制造话题,在创建话题过程中也遇到些麻烦,最终联系了知乎小管家,成功创建了该话题.目前过去7个月了,该话题的关注人数有820人了 ...

  5. 如何在WSL下使用VS Code

    转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具.解决方案和服务,赋能开发者.本有由葡萄城技术团队翻译并整理 自微软开始宣布拥抱开源以来,我认为微软发布的最棒的两大功能是:Visual S ...

  6. JS Bootstrap-DateRangePicker 如何设置默认值为空

    DateRangePicker是一款时间范围选择器,界面良好,非常适合短时间范围选择的插件,具体源码可以在http://www.daterangepicker.com/找到 ,但是目前使用中,感觉功能 ...

  7. 白话kubernetes的十万个为什么(持续更新中...) - kubernetes

    Kubernetes简称? 答:k8s或kube. Kubernetes是什么? 答:由Google开发的一个强大的平台,可以在集群环境中管理容器化应用程序.本质上是一种特殊的数据库,里面存储的是能够 ...

  8. CAP 2.5 版本中的新特性

    前言 首先,恭喜 CAP 已经成为 eShopOnContainers 官方推荐的生产环境可用的 EventBus 之一. 自从上次 CAP 2.4 版本发布 以来,已经过去了几个月的时间,关注的朋友 ...

  9. MongoDB 4.0 开发环境搭建集群

    环境准备 Liunx 服务器一台 以下示例为单机版安装集群, 没有分片 MongoDB 安装 1.下载 MongoDB tgz 安装包: 可以从下载中心下载: https://www.mongodb. ...

  10. 《Python黑客编程之极速入门》正式开课

    玄魂 玄魂工作室 今天 之前开启了一个<Python黑客编程>的系列,后来中断了,内容当时设置的比较宽,不太适合入门.现在将其拆分成两个系列<Python黑客编程之极速入门>和 ...