Keras序列模型学习
转自:https://keras.io/zh/getting-started/sequential-model-guide/
1.顺序模型是多个网络层的线性堆叠。
你可以通过将网络层实例的列表传递给 Sequential
的构造器,来创建一个 Sequential
模型:
from keras.models import Sequential from keras.layers import Dense, Activationmodel = 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'))
然后发现,这样也行:
mo=Sequential([Dense(32,input_dim=784,activation="relu"),Dense(5,activation="softmax")])
//Dense就是有单元数、输入维度(只在第一层的时候有,之后会自动计算)。
指定输入尺寸:
- 传递一个
input_shape
参数给第一层。它是一个表示尺寸的元组 (一个整数或None
的元组,其中None
表示可能为任何正整数)。在input_shape
中不包含数据的 batch 大小。
model = Sequential() model.add(Dense(32, input_shape=(784,))) 等价于 model = Sequential() model.add(Dense(32, input_dim=784))
//这个input_dim应该是一个隐藏参数。
2.模型编译
# try using different optimizers and different optimizer configs model.compile('adam', 'binary_crossentropy', metrics=['accuracy'])
- 优化器 optimizer。它可以是现有优化器的字符串标识符,如
rmsprop
或adagrad
,也可以是 Optimizer 类的实例。详见:optimizers。 - 损失函数 loss,模型试图最小化的目标函数。它可以是现有损失函数的字符串标识符,如
categorical_crossentropy
或mse
,也可以是一个目标函数。详见:losses。 - 评估标准 metrics。对于任何分类问题,你都希望将其设置为
metrics = ['accuracy']
。评估标准可以是现有的标准的字符串标识符,也可以是自定义的评估标准函数。
# 多分类问题 model.compile(optimizer='rmsprop',loss='categorical_crossentropy',metrics=['accuracy'])# 二分类问题 model.compile(optimizer='rmsprop',loss='binary_crossentropy',metrics=['accuracy'])# 均方误差回归问题 model.compile(optimizer='rmsprop',loss='mse')# 自定义评估标准函数 import keras.backend as Kdef mean_pred(y_true, y_pred):return K.mean(y_pred)model.compile(optimizer='rmsprop',loss='binary_crossentropy',metrics=['accuracy', mean_pred])
//上边这个给出的例子不错的。
3.模型训练
fit(x=None, y=None, batch_size=None, epochs=1, verbose=1, callbacks=None, validation_split=0.0, validation_data=None, shuffle=True, class_weight=None, sample_weight=None, initial_epoch=0, steps_per_epoch=None, validation_steps=None)
以给定数量的轮次(数据集上的迭代)训练模型。
参数
- x: 训练数据的 Numpy 数组(如果模型只有一个输入), 或者是 Numpy 数组的列表(如果模型有多个输入)。 如果模型中的输入层被命名,你也可以传递一个字典,将输入层名称映射到 Numpy 数组。 如果从本地框架张量馈送(例如 TensorFlow 数据张量)数据,
x
可以是None
(默认)。 - y: 目标(标签)数据的 Numpy 数组(如果模型只有一个输出), 或者是 Numpy 数组的列表(如果模型有多个输出)。 如果模型中的输出层被命名,你也可以传递一个字典,将输出层名称映射到 Numpy 数组。 如果从本地框架张量馈送(例如 TensorFlow 数据张量)数据,y 可以是
None
(默认)。 - batch_size: 整数或
None
。每次梯度更新的样本数。如果未指定,默认为 32。 - epochs: 整数。训练模型迭代轮次。一个轮次是在整个
x
和y
上的一轮迭代。 请注意,与initial_epoch
一起,epochs
被理解为 「最终轮次」。模型并不是训练了epochs
轮,而是到第epochs
轮停止训练。 - verbose: 0, 1 或 2。日志显示模式。 0 = 安静模式, 1 = 进度条, 2 = 每轮一行。
- callbacks: 一系列的
keras.callbacks.Callback
实例。一系列可以在训练时使用的回调函数。 详见 callbacks。 - validation_split: 0 和 1 之间的浮点数。用作验证集的训练数据的比例。 模型将分出一部分不会被训练的验证数据,并将在每一轮结束时评估这些验证数据的误差和任何其他模型指标。 验证数据是混洗之前
x
和y
数据的最后一部分样本中。 - validation_data: 元组
(x_val,y_val)
或元组(x_val,y_val,val_sample_weights)
, 用来评估损失,以及在每轮结束时的任何模型度量指标。 模型将不会在这个数据上进行训练。这个参数会覆盖validation_split
。 - shuffle: 布尔值(是否在每轮迭代之前混洗数据)或者 字符串 (
batch
)。batch
是处理 HDF5 数据限制的特殊选项,它对一个 batch 内部的数据进行混洗。 当steps_per_epoch
非None
时,这个参数无效。 - class_weight: 可选的字典,用来映射类索引(整数)到权重(浮点)值,用于加权损失函数(仅在训练期间)。 这可能有助于告诉模型 「更多关注」来自代表性不足的类的样本。
- sample_weight: 训练样本的可选 Numpy 权重数组,用于对损失函数进行加权(仅在训练期间)。 您可以传递与输入样本长度相同的平坦(1D)Numpy 数组(权重和样本之间的 1:1 映射), 或者在时序数据的情况下,可以传递尺寸为
(samples, sequence_length)
的 2D 数组,以对每个样本的每个时间步施加不同的权重。 在这种情况下,你应该确保在compile()
中指定sample_weight_mode="temporal"
。 - initial_epoch: 整数。开始训练的轮次(有助于恢复之前的训练)。
- steps_per_epoch: 整数或
None
。 在声明一个轮次完成并开始下一个轮次之前的总步数(样品批次)。 使用 TensorFlow 数据张量等输入张量进行训练时,默认值None
等于数据集中样本的数量除以 batch 的大小,如果无法确定,则为 1。 - validation_steps: 只有在指定了
steps_per_epoch
时才有用。停止前要验证的总步数(批次样本)。
model.fit(x_train, y_train,batch_size=batch_size,epochs=4,validation_data=[x_test, y_test])
返回
一个 History
对象。其 History.history
属性是连续 epoch 训练损失和评估值,以及验证集损失和评估值的记录(如果适用)。
4.模型测试
evaluate(x=None, y=None, batch_size=None, verbose=1, sample_weight=None, steps=None)
在测试模式下返回模型的误差值和评估标准值。
计算是分批进行的。
- batch_size: 整数或
None
。每次评估的样本数。如果未指定,默认为 32。
- steps: 整数或
None
。 声明评估结束之前的总步数(批次样本)。默认值None
。
返回
标量测试误差(如果模型只有一个输出且没有评估标准) 或标量列表(如果模型具有多个输出 和/或 评估指标)。 属性 model.metrics_names
将提供标量输出的显示标签。
predict(x, batch_size=None, verbose=0, steps=None)
返回
预测的 Numpy 数组(或数组列表)。
train_on_batch(x, y, sample_weight=None, class_weight=None)
运行一批样品的单次梯度更新。
返回
标量训练误差(如果模型只有一个输入且没有评估标准), 或者标量的列表(如果模型有多个输出 和/或 评估标准)。 属性 model.metrics_names
将提供标量输出的显示标签。
test_on_batch(x, y, sample_weight=None)
返回
标量测试误差(如果模型只有一个输入且没有评估标准), 或者标量的列表(如果模型有多个输出 和/或 评估标准)。 属性 model.metrics_names
将提供标量输出的显示标签。
predict_on_batch(x)
返回一批样本的模型预测值。
返回
预测值的 Numpy 数组(或数组列表)。
5.总之
官方文档里的内容是很全的,需要什么参数设置就可以了。
转载于:https://www.cnblogs.com/BlueBlueSea/p/10672880.html
Keras序列模型学习相关推荐
- DL框架之Keras:深度学习框架Keras框架的简介、安装(Python库)、相关概念、Keras模型使用、使用方法之详细攻略
DL框架之Keras:深度学习框架Keras框架的简介.安装(Python库).相关概念.Keras模型使用.使用方法之详细攻略 目录 Keras的简介 1.Keras的特点 2.Keras四大特性 ...
- Andrew Ng 深度学习课程——序列模型
主要是记录网易云课堂上的网络课序列模型的笔记 date version comments 2019/10/04 V0.1 Init 文章目录 循环序列模型 模型基础 语言模型和序列生成 梯度消失问题 ...
- 关于NLP相关技术全部在这里:预训练模型、图神经网络、模型压缩、知识图谱、信息抽取、序列模型、深度学习、语法分析、文本处理...
NLP近几年非常火,且发展特别快.像BERT.GPT-3.图神经网络.知识图谱等技术应运而生. 我们正处在信息爆炸的时代.面对每天铺天盖地的网络资源和论文.很多时候我们面临的问题并不是缺资源,而是找准 ...
- 3.12 总结-深度学习第五课《序列模型》-Stanford吴恩达教授
习题 第二周 - 自然语言处理与词嵌入 第 151 题 假设你为10000个单词学习词嵌入,为了捕获全部范围的单词的变化以及意义,那么词嵌入向量应该是10000维的. A.正确 B.错误 第 152 ...
- 3.11 结论和致谢-深度学习第五课《序列模型》-Stanford吴恩达教授
结论和致谢 (Conclusion and thank you) 恭喜你能走到这一步,在最后这节视频中,只想做个总结,并给你一些最后的想法. 我们一起经历了一段很长的旅程,如果你已经学完了整个专业的课 ...
- 3.10 触发字检测-深度学习第五课《序列模型》-Stanford吴恩达教授
触发字检测 (Trigger Word Detection) 现在你已经学习了很多关于深度学习和序列模型的内容,于是我们可以真正去简便地描绘出一个触发字系统(a trigger word system ...
- 3.8 注意力模型-深度学习第五课《序列模型》-Stanford吴恩达教授
注意力模型 (Attention Model) 在上个视频中你已经见到了,注意力模型如何让一个神经网络只注意到一部分的输入句子.当它在生成句子的时候,更像人类翻译.让我们把这些想法转化成确切的式子,来 ...
- 3.5 集束搜索的误差分析-深度学习第五课《序列模型》-Stanford吴恩达教授
集束搜索的误差分析 (Error analysis in beam search) 在这五门课中的第三门课里,你了解了误差分析是如何能够帮助你集中时间做你的项目中最有用的工作,束搜索算法是一种近似搜索 ...
- 1.2 数学符号-深度学习第五课《序列模型》-Stanford吴恩达教授
←上一篇 ↓↑ 下一篇→ 1.1 为什么选择序列模型 回到目录 1.3 循环神经网络 数学符号(Notation) 本节先从定义符号开始一步步构建序列模型. 比如说你想要建立一个序列模型,它的输入语句 ...
最新文章
- 格式引用_论文中如何快速给出规范的文献引用格式?
- VMware 安装ubuntu 18.04遇到的问题
- MDB!= JMS,反之亦然
- 触发器 REFERENCING OLD AS OLD NEW AS NEW FOR EACH Row
- tableau 集动作_在Tableau中通过添加操作,控制集并高亮显示数据
- LeetCode - 9. 回文数
- 【Linux 命令学习第一天
- Atitit mq读取队列信息 范例 目录 1.1. 读取原理与主要流程	1 1.2. 范例项目 C:\0wkspc\MqDemoPrj	1 1.3. 范例代码	1 1.1.读取原理与主要流程
- python种子数是什么意思_Python:随机种子问题
- 自动驾驶-MPC控制器
- 城市应急管理系统技术方案
- Review board 和 Git 配合使用 一
- Material Components(MDC)简单使用介绍
- java知识点ppt背景图片_Java 给PPT幻灯片添加背景颜色和背景图片
- 金仓数据库 KingbaseES插件参考手册 F
- 熵值法的python实现方法
- html圆柱体制作方法,如何制作圆柱体
- android wifi 5g,android 判断 wifi 是否是 5G
- java正则匹配ip_正则表达式 - 匹配 IP 地址
- 家庭组网 光猫+交换机利用VLAN划分实现客厅IPTV机顶盒与上网路由器单线复用(上)