python神经网络学习 使用Keras进行回归运算


Posted in Python onMay 04, 2022

学习前言

看了好多Github,用于保存模型的库都是Keras,我觉得还是好好学习一下的好

什么是Keras

Keras是一个由Python编写的开源人工神经网络库,可以作Tensorflow、Microsoft-CNTK和Theano的高阶应用程序接口,进行深度学习模型的设计、调试、评估、应用和可视化。

Keras相当于比Tensorflow和Theano更高一层的库,其可以以Tensorflow或者Theano为底层框架,以更加简洁、高效的方式添加代码。

在2018年Tensorflow 2.0.0公开后,Keras被正式确立为Tensorflow高阶API。

Keras中基础的重要函数

1、Sequential

Sequential又称为序贯模型。

序贯模型为最简单的线性、从头到尾的结构顺序,不分叉,是多个网络层的线性堆叠。

在利用Keras进行模型构建前,只需要用如下函数建立模型就够了。

model = Sequential()

此时便已经建立了一个按次序的模型,之后在往模型中添加层的时候,就是按照次序添加的。

2、Dense

Dense用于往Sequential中添加全连接层。全连接层示意图如下。(图片源自百度百科)

python神经网络学习 使用Keras进行回归运算

具体而言,简单的BP神经网络中,输入层到隐含层中间的权值连接,其实与全连接层的意义相同。
在Keras中,如果需要往model中添加全连接层,可使用如下函数。

model.add(Dense(output_dim = 1,input_dim = 1))

此时表示输入维度为1,输出维度也为1。

3、model.compile

model.compile在Keras中的作用主要用于定义loss函数和优化器。

其调用方式如下:

model.compile(loss='mse', optimizer='sgd', metrics=['accuracy'])

其中loss用于定义计算损失的损失函数,其可以选择的内容如下:
1、mse:均方根误差,常用于回归预测。

2、categorical_crossentropy:亦称作多类的对数损失,注意使用该目标函数时,需要将标签转化为形如(nb_samples, nb_classes)的二值序列,常用于分类。

3、sparse_categorical_crossentrop:如上,但接受稀疏标签。

optimizer用于定义优化器,可以使用默认的,也可以从keras.optimizers导出。

其可以选择的内容可以参照Keras中文文档。上文中选择的是随机梯度下降法sgd。

metrics=[‘accuracy’]常用于分类运算中,本例子中不适用,accuracy代表计算分类精确度。

全部代码

该例子为一元线性回归例子。

import numpy as np
from keras.models import Sequential
from keras.layers import Dense  ## 全连接层
import matplotlib.pyplot as plt 
# 生成测试数据
X = np.linspace(-1,1,200)
np.random.shuffle(X)
Y = 0.5*X + 2 + np.random.normal(0,0.05,(200,))
# 划分训练集和测试集
X_train,Y_train = X[:160],Y[:160]
X_test,Y_test = X[160:],Y[160:]
# start
model = Sequential()
model.add(Dense(output_dim = 1,input_dim = 1))
# compile
model.compile(loss = 'mse',optimizer = 'sgd')
# 训练
print("\ntraining")
for step in range(2001):
    cost = model.train_on_batch(X_train,Y_train)
    if step%100 == 0:
        print("tarin_cost:",cost)
# 测试
print("\nTest")
cost = model.evaluate(X_test,Y_test,batch_size=40)
W,b = model.layers[0].get_weights()
print("Weights",W,"biaxes",b)
# 预测结果
Y = model.predict(X_test)
plt.scatter(X_test,Y_test)
plt.plot(X_test,Y)
plt.show()

实现结果为:

tarin_cost: 4.506874
tarin_cost: 0.21098542
tarin_cost: 0.041809298
tarin_cost: 0.013134768
tarin_cost: 0.0055761375
tarin_cost: 0.0035068158
tarin_cost: 0.0029388934
tarin_cost: 0.002783
tarin_cost: 0.0027402083
tarin_cost: 0.002728462
tarin_cost: 0.0027252387
tarin_cost: 0.0027243525
tarin_cost: 0.0027241106
tarin_cost: 0.0027240426
tarin_cost: 0.002724025
tarin_cost: 0.0027240203
tarin_cost: 0.0027240184
tarin_cost: 0.0027240182
tarin_cost: 0.0027240175
tarin_cost: 0.0027240175
tarin_cost: 0.0027240175
Test
40/40 [==============================] - 0s 874us/step
Weights [[0.5041559]] biaxes [1.9961643]

python神经网络学习 使用Keras进行回归运算

以上就是python神经网络学习使用Keras进行回归运算的详细内容!


Tags in this post...

Python 相关文章推荐
python开发简易版在线音乐播放器
Mar 03 Python
使用Python对MySQL数据操作
Apr 06 Python
Python使用sort和class实现的多级排序功能示例
Aug 15 Python
对python中dict和json的区别详解
Dec 18 Python
python实时获取外部程序输出结果的方法
Jan 12 Python
Anaconda配置pytorch-gpu虚拟环境的图文教程
Apr 16 Python
深入浅析python 中的self和cls的区别
Jun 20 Python
python3.7.3版本和django2.2.3版本是否可以兼容
Sep 01 Python
Python求区间正整数内所有素数之和的方法实例
Oct 13 Python
Python和Bash结合在一起的方法
Nov 13 Python
基于python制作简易版学生信息管理系统
Apr 20 Python
python基础之模块的导入
Oct 24 Python
python神经网络学习 使用Keras进行简单分类
May 04 #Python
python神经网络 tf.name_scope 和 tf.variable_scope 的区别
May 04 #Python
Python3使用Qt5来实现简易的五子棋小游戏
May 02 #Python
python开发制作好看的时钟效果
关于的python五子棋的算法
python开发人人对战的五子棋小游戏
python pygame 开发五子棋双人对弈
May 02 #Python
You might like
jq的get传参数在utf-8中乱码问题的解决php版
2008/07/23 PHP
分享一个PHP数据流应用的简单例子
2012/06/01 PHP
php实现水仙花数示例分享
2014/04/03 PHP
php+jQuery+Ajax实现点赞效果的方法(附源码下载)
2020/07/21 PHP
PHP封装的MSSql操作类完整实例
2016/05/26 PHP
PHP折半(二分)查找算法实例分析
2018/05/12 PHP
用Javascript做flash做的事..才完成的一个类.Auntion Action var 0.1
2007/02/23 Javascript
WEB页子窗口(showModalDialog和showModelessDialog)使用说明
2009/10/25 Javascript
Ubuntu 11.10 安装Node.js的方法
2011/11/30 Javascript
js实现的切换面板实例代码
2013/06/17 Javascript
jQuery实现密保互斥问题解决方案
2013/08/16 Javascript
js中的onchange和onpropertychange (onchange无效的解决方法)
2014/03/08 Javascript
很酷的星级评分系统原生JS实现
2016/08/25 Javascript
javascript经典特效分享 手风琴、轮播图、图片滑动
2016/09/14 Javascript
Bootstrap实现渐变顶部固定自适应导航栏
2020/08/27 Javascript
canvas仿iwatch时钟效果
2017/03/06 Javascript
Vue.js 十五分钟入门图文教程
2018/09/12 Javascript
JavaScript面向对象核心知识与概念归纳整理
2020/05/09 Javascript
jQuery实现异步上传一个或多个文件
2020/08/17 jQuery
关于Node.js中频繁修改代码重启服务器的问题
2020/10/15 Javascript
Python实现基本线性数据结构
2016/08/22 Python
python实现zabbix发送短信脚本
2018/09/17 Python
Python常用特殊方法实例总结
2019/03/22 Python
创建Django项目图文实例详解
2019/06/06 Python
python网络编程socket实现服务端、客户端操作详解
2020/03/24 Python
python实现输入三角形边长自动作图求面积案例
2020/04/12 Python
Html5调用手机摄像头并实现人脸识别的实现
2018/12/21 HTML / CSS
英国最出名高街品牌:Forever Unique
2018/02/24 全球购物
《维生素c的故事》教学反思
2014/02/18 职场文书
酒店管理专业毕业生求职自荐信
2014/04/28 职场文书
三严三实心得体会范文
2014/10/13 职场文书
先进个人推荐材料
2014/12/29 职场文书
小学教研工作总结2015
2015/05/13 职场文书
2015年卫生监督工作总结
2015/05/21 职场文书
HTML5页面音频自动播放的实现方式
2021/06/21 HTML / CSS
mybatis中sql语句CDATA标签的用法说明
2021/06/30 Java/Android