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中for循环详解
Jan 17 Python
Python Web框架Flask信号机制(signals)介绍
Jan 01 Python
python使用sorted函数对列表进行排序的方法
Apr 04 Python
django ajax json的实例代码
May 29 Python
python3调用百度翻译API实现实时翻译
Aug 16 Python
Python面向对象之接口、抽象类与多态详解
Aug 27 Python
python学生管理系统
Jan 30 Python
python实现按首字母分类查找功能
Oct 31 Python
PyCharm中如何直接使用Anaconda已安装的库
May 28 Python
python基于openpyxl生成excel文件
Dec 23 Python
python文件目录操作之os模块
May 08 Python
使用qt quick-ListView仿微信好友列表和聊天列表的示例代码
Jun 13 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
DEDE采集大师官方留后门的删除办法
2011/01/08 PHP
IIS6.0 开启Gzip方法及PHP Gzip函数分享
2014/06/08 PHP
php实现数据库的增删改查
2017/02/26 PHP
PHP简单实现模拟登陆功能示例
2017/09/15 PHP
PHP大文件分割分片上传实现代码
2020/12/09 PHP
在视频前插入广告
2006/11/20 Javascript
Extjs Ajax 乱码问题解决方案
2009/04/15 Javascript
jQuery 使用手册(二)
2009/09/23 Javascript
自己用jQuery写了一个图片的马赛克消失效果
2014/05/04 Javascript
JavaScript代码判断点击第几个按钮
2015/12/13 Javascript
AngularJS基础 ng-switch 指令简单示例
2016/08/03 Javascript
移动端脚本框架Hammer.js
2016/12/15 Javascript
vue实现ToDoList简单实例
2017/02/07 Javascript
React Native基础入门之调试React Native应用的一小步
2018/07/02 Javascript
Node爬取大批量文件的方法示例
2019/06/28 Javascript
JavaScript观察者模式原理与用法实例详解
2020/03/10 Javascript
Python中的自定义函数学习笔记
2014/09/23 Python
python中(str,list,tuple)基础知识汇总
2018/02/20 Python
Pandas 对Dataframe结构排序的实现方法
2018/04/10 Python
对numpy数据写入文件的方法讲解
2018/07/09 Python
详解如何将python3.6软件的py文件打包成exe程序
2018/10/09 Python
python 读取文件并把矩阵转成numpy的两种方法
2019/02/12 Python
Python3+OpenCV2实现图像的几何变换(平移、镜像、缩放、旋转、仿射)
2019/05/13 Python
django admin后台添加导出excel功能示例代码
2019/05/15 Python
Python简易版图书管理系统
2019/08/12 Python
英国高街品牌:Miss Selfridge(塞尔弗里奇小姐)
2016/09/21 全球购物
美国探亲签证邀请信
2014/02/05 职场文书
伊琍体标语
2014/06/25 职场文书
2014党员民主评议个人思想剖析发言
2014/09/19 职场文书
群众路线查摆问题及整改措施
2014/10/10 职场文书
2014年小学教学工作总结
2014/11/13 职场文书
高中生综合素质自我评价
2015/03/06 职场文书
工程款申请报告
2015/05/15 职场文书
2016大学优秀学生干部事迹材料
2016/03/01 职场文书
Java练习之潜艇小游戏的实现
2022/03/16 Java/Android
关于MySQL中explain工具的使用
2023/05/08 MySQL