深入学习Keras中Sequential模型及方法 - 战争热诚 - bky https://www.cnblogs.com/wj-1314/p/9579490.html

Sequential 序贯模型

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

Keras实现了很多层,包括core核心层,Convolution卷积层、Pooling池化层等非常丰富有趣的网络结构。

我们可以通过将层的列表传递给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'))

指定输入数据的尺寸

模型需要知道它所期待的输入的尺寸(shape)。出于这个原因,序贯模型中的第一层(只有第一层,因为下面的层可以自动的推断尺寸)需要接收关于其输入尺寸的信息,后面的各个层则可以自动的推导出中间数据的shape,因此不需要为每个层都指定这个参数。有以下几种方法来做到这一点:

  • 传递一个input_shape参数给第一层。它是一个表示尺寸的元组(一个整数或None的元组,其中None表示可能为任何正整数)。在input_shape中不包含数据的batch大小。
  • 某些 2D 层,例如 Dense,支持通过参数 input_dim 指定输入尺寸,某些 3D 时序层支持 input_dim 和
    input_length 参数。
  • 如果你需要为你的输入指定一个固定的 batch 大小(这对 stateful RNNs 很有用),你可以传递一个 batch_size
    参数给一个层。如果你同时将 batch_size=32 和 input_shape=(6, 8)
    传递给一个层,那么每一批输入的尺寸就为 (32,6,8)。

因此下面的代码是等价的。

model = Sequential()
model.add(Dense(32, input_shape=(784,)))model = Sequential()
model.add(Dense(32, input_dim=784))

下面三种方法也是严格等价的

model = Sequential()
model.add(LSTM(32, input_shape=(10, 64)))model = Sequential()
model.add(LSTM(32, batch_input_shape=(None, 10, 64)))model = Sequential()
model.add(LSTM(32, input_length=10, input_dim=64))

编译

在训练模型之前,我们需要配置学习过程,这是通过compile方法完成的,他接收三个参数:

  • 优化器 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])

方法compile见此篇文章:
【tensorflow】Sequential 模型方法 compile, model.compile_电子生医小白的博客-CSDN博客 https://blog.csdn.net/m0_53732376/article/details/117042962

【tensorflow】Sequential 模型方法相关推荐

  1. 【tensorflow】Sequential 模型方法 compile, model.compile

    Sequential 顺序模型 API - Keras 中文文档 https://keras.io/zh/models/sequential/ Sequential 序贯模型 序贯模型是函数式模型的简 ...

  2. Keras中Sequential模型及方法详细总结

    Sequential 序贯模型 序贯模型是函数式模型的简略版,为最简单的线性.从头到尾的结构顺序,不分叉,是多个网络层的线性堆叠. Keras实现了很多层,包括core核心层,Convolution卷 ...

  3. [tensorflow]tensorflow 顺序模型(Sequential model)

    注意:采用tensorflow 2.1.0 1.适用顺序模型的情况 顺序模型适用于简单的层堆栈,其中每一层正好具有一个输入张量和一个输出张量. 例如: import tensorflow as tf ...

  4. TensorFlow基础12-(keras.Sequential模型以及使用Sequential模型 实现手写数字识别)

    记录TensorFlow听课笔记 文章目录 记录TensorFlow听课笔记 一,Sequential模型 二,实现手写数字识别 一,Sequential模型 二,实现手写数字识别 #使用Sequen ...

  5. tensorflow保存模型和加载模型的方法(Python和Android)

    tensorflow保存模型和加载模型的方法(Python和Android) 一.tensorflow保存模型的几种方法: (1) tf.train.saver()保存模型 使用 tf.train.s ...

  6. 『TensorFlow』模型保存和载入方法汇总

    一.TensorFlow常规模型加载方法 保存模型 tf.train.Saver()类,.save(sess, ckpt文件目录)方法 参数名称 功能说明 默认值 var_list Saver中存储变 ...

  7. 『TensorFlow』模型载入方法汇总

    『TensorFlow』第七弹_保存&载入会话_霸王回马 一.TensorFlow常规模型加载方法 保存模型 tf.train.Saver()类,.save(sess, ckpt文件目录)方法 ...

  8. 谷歌I/O走进TensorFlow开源模型世界:从图像识别到语义理解

    谷歌I/O走进TensorFlow开源模型世界:从图像识别到语义理解 2017-05-23 16:13:11    TensorFlow    2 0 0 一年一度的谷歌开发者大会 Google I/ ...

  9. tf.saved_model.save模型导出、TensorFlow Serving模型部署、TensorBoard中的HParams 超参数调优

    日萌社 人工智能AI:Keras PyTorch MXNet TensorFlow PaddlePaddle 深度学习实战(不定时更新) 4.11 综合案例:模型导出与部署 学习目标 目标 掌握Ten ...

最新文章

  1. php程序监听node.js程序和go程序
  2. git 添加用户名和邮箱_设置 Git 账户及邮箱
  3. P6847-[CEOI2019]Magic Tree【dp,线段树合并】
  4. 如何在Windows环境下的VS中安装使用Google Protobuf完成SOCKET通信
  5. requests-使用代理proxies
  6. 算法Top(K)问题
  7. Linux学习总结(77)—— Shell 开发运维经验总结
  8. 微信多开txt_微信如何多开
  9. Datawhale 202210 Excel | 第九、十章 Excel数据可视化
  10. 统计物理α和β方法体系介绍
  11. 安装部署Liberty Neutron
  12. C语言beep中有什么作用,C++中发声函数Beep用法
  13. Qt封包生成exe文件
  14. 当定频神器爱上多线程|ROS2定频话题发布Demo
  15. 用于设定表格样式的附加css,Dreamweaver使用CSS样式表设置网页文本格式
  16. c语言统考试卷10,C语言统考试卷.doc
  17. 使用js删除表格中的一行的一个小练习
  18. Android Weekly #32 - 面对畏惧之人,便说笨方法是行动的勇敢
  19. RoboMaster舵轮底盘代码分享
  20. 查找旁站路径的几种方法

热门文章

  1. OpenCASCADE可视化:应用交互服务之交互对象
  2. BOOST_VMD_ASSERT_IS_NUMBER宏相关的测试程序
  3. boost::histogram::axis::option用法的测试程序
  4. boost::geometry模块测试地理策略Testing geographic strategies的测试程序
  5. GDCM:提取DICOM文件的加密内容到der文件的测试程序
  6. Boost:gzip解压缩器
  7. ITK:均值滤波的图像
  8. DCMTK:OFCharacterEncoding的测试程序
  9. DCMTK:类DcmSequence和DcmPixelSequence的测试程序
  10. DCMTK:DcmItem类的测试程序