Keras Sequential 顺序模型详解
创作时间:
作者:
@小白创作中心
Keras Sequential 顺序模型详解
引用
CSDN
1.
https://blog.csdn.net/weixin_43026262/article/details/95785111
在深度学习领域,Keras是一个非常流行的高级神经网络API,能够以用户友好的方式运行在TensorFlow、Microsoft Cognitive Toolkit (CNTK)或Theano之上。本文将详细介绍Keras中的Sequential顺序模型,包括其创建、编译和训练过程,并通过一个回归神经网络的案例进行实践演示。
一、创建顺序模型Sequential()
顺序模型是多个网络层的线性堆叠。你可以通过将网络层实例的列表传递给 Sequential 的构造器,来创建一个 Sequential 模型:
from keras.models import Sequential
from keras.layers import Dense, Activation
model = Sequential([
Dense(32, input_shape=(784,)),
Activation('relu'),
Dense(10),
Activation('softmax'),
])
也可以简单地使用 .add() 方法将各层添加到模型中:
model = Sequential()
model.add(Dense(32, input_dim=784))
model.add(Activation('relu'))
1. 指定输入数据的尺寸
模型需要知道它所期望的输入的尺寸,因此顺序模型中的第一层(且只有第一层,因为下面的层可以自动地推断尺寸)需要接收关于其输入尺寸的信息。有几种方法来做到这一点:
- input_shape:传递一个 input_shape 参数给第一层。它是一个表示尺寸的元组(一个整数或 None 的元组,其中 None 表示可能为任何正整数)。在 input_shape 中不包含数据的 batch 大小。
- input_dim:某些 2D 层,例如 Dense,支持通过参数 input_dim 指定输入尺寸,某些 3D 时序层支持 input_dim 和 input_length 参数。
- batch_size:如果你需要为你的输入指定一个固定的 batch 大小(这对 stateful RNNs 很有用),你可以传递一个 batch_size 参数给一个层。如果你同时将 batch_size=32 和 input_shape=(6, 8) 传递给一个层,那么每一批输入的尺寸就为 (32,6,8)
下面的代码片段是等价的:
model = Sequential()
model.add(Dense(32, input_shape=(784,)))
#tuple的元素之间用逗号隔开
#只有1个元素的tuple定义时必须加一个逗号,否则定义的不是tuple而是一个数
model = Sequential()
model.add(Dense(32, input_dim=784))
2.模型编译
在训练模型之前,您需要配置模型的学习过程,这是通过 compile 方法完成的。它接收三个参数:
- 优化器 optimizer:它可以是现有优化器的字符串标识符,如 rmsprop 或 adagrad,也可以是Optimizer 类的实例
- 损失函数 loss:模型试图最小化的目标函数。它可以是现有损失函数的字符串标识符,如 categorical_crossentropy 或 mse,也可以是一个自定义的目标函数
- 评估标准 metrics:对于任何分类问题,你都可以将其设置为 metrics = [‘accuracy’]。评估标准可以是现有评估标准的字符串标识符,也可以是自定义的评估标准函数
3.模型训练
Keras 模型在输入数据和标签的 Numpy 矩阵上进行训练,通常会使用 fit 函数,下面的简单例子使用的是train_on_batch函数。
二、案例:搭建Regression回归神经网络
神经网络可以用来解决回归问题 (regression),例如给下面一组数据,可以搭建神经网络用一条线来对数据进行拟合,并可以预测新输入 x 的输出值
先放上完整的模型和结果
# 19/07/13-Regressor example
import numpy as np
np.random.seed(1337) # for reproducibility
from keras.models import Sequential
from keras.layers import Dense
import matplotlib
热门推荐
忠魂不灭!揭秘南宋末年黄氏家族的保王存赵壮举
伤病与引援阴影下,阿森纳客战莱斯特城的悬念与挑战
ChatGPT与Chatbot:探索人机交互的新未来
如何在客户下单后自动触发订单确认邮件
优秀的销售人员应具备哪些能力
销售数据分析咋帮企业洞察市场和优化销售策略?
成功发送:吸引眼球的新闻稿的 7 个基本技巧
揭秘摆拍造谣短视频背后的社会危害
30款适合朋友/情侣一起玩的双人联机游戏盘点
科普:左眼跳财右眼跳灾?指纹掌纹能预测命运?这些迷信说法有科学依据吗
如何有效利用过去经验,为未来打造更强大自己
“00”后女枪王沈梦可:从军营到校园,始终闪耀的青春
相亲后微信聊天高情商话题指南:轻松打破尴尬,迅速增进感情
常见的四种领型该怎么选择?领型选的对,就能穿的更时尚更美
重拳打击医院“号贩子”,沈阳警方抓获112人!
从“官将首”到“八家将”:台湾独特的游神文化
无畏契约新手指南 | 初学者百科
快别抖腿了!抖腿真的会伤身体吗?
一天不抖,浑身难受,听说抖腿的人在悄悄释放压力
粤菜十大名菜:从白切鸡到脆皮烧鹅
“三花不送人,送了变仇人”,哪三种花不能送给别人?有道理吗?
环保科普 | 大气污染防治措施有哪些?
推动沪港科创合作 香港科技大学上海产教融合中心在沪成立
如何由代码逆向研究算法
俄罗斯人眼中最好的大学,2024年俄罗斯高校学科排名出炉
健胃消食片与保和丸的区别是什么呢
刘邦:最强封建皇帝的智慧与领导力
与阿基米德原理相关的几个科学问题及引发的思考
一例IgG4相关性疾病的诊治体会
一文盘点IgG4相关性疾病领域最新进展