使用Keras搭建深度学习模型

news/2024/11/27 20:36:35/

前言

目前深度学习领域的主流框架

  • tensorflow
  • keras
  • pytorch
  • caffe
  • theano
  • paddlepaddle

keras

代码架构

keras代码风格相比于其他框架更符合人的思维
在这里插入图片描述

模型

  • 模型的组成分为三部分:输入层、网络层、输出层

输入层

  • 输入层的作用时规定了模型输入的shape
from keras.layers import Inputipt = Input(shape=(feature,))

注意**,shspe不包含样本数量的维度**。

参数详情

在这里插入图片描述

网络层

网络层的定义如:全连接层、卷积层、LSTM层,自定义网络层等

  • from keras.layers. import Dense,Conv2D,LSTM.
    一些常见的网络层主要参数如下,其他网络层参数详情可以自己去文档溜达溜达。

  • Dense(units,activation = None…)

    • units: 神经元的个数。
    • activation 激活函数.
  • Conv2D (filters, kernel_size, strides=(1, 1), padding=‘valid’, activation=None, …)

    • filters: 整数:输出空间的维度,(即卷积中的滤波器的输出数量)
    • kernel_size: 一个整数,或者两个整数表示的元组和列表,指明2D卷积窗口的高度和宽度。可以是一个整数,为所有空间维度指定相同的值。
    • strides: 一个整数,或者 2 个整数表示的元组或列表, 指明卷积沿宽度和高度方向的步长。 可以是一个整数,为所有空间维度指定相同的值。 指定任何 stride 值 != 1 与指定dilation_rate 值! = 1两者不兼容。
    • padding: “valid” 或 “same” (大小写敏感)。
    • activation 激活函数》

LSTM

( units, activation=‘tanh’,return_sequences=False,…)

  • units: 输出向量的维度,
  • activation:激活函数
  • return_sequences: 布尔值,是返回输出序列中的最后一个输出,还是全部序列,(即每一个时间步对应一个输出

关于网络层一些常见的激活函数

  • relu、tanh、sigmoid
    在这里插入图片描述

输出层

keraskeraskeras没有项输出层一样专门的层定义,而是在模型的最后一个接入一个全连接层(Desnse),作为输出层

在这里插入图片描述

此处中最后一层即为输出层,该模型只有一个输出。

搭建

上一步,主要定义一些层的基本信息:如输入/输出,网络层(神经元数量、激活函数等等)。现在需要把这些层组建起来:

定义

在这里插入图片描述
在这里插入图片描述

编译

编译:指明模型训练时候用的优化器,损失函数、评价标准等等。

在这里插入图片描述

常见的优化器有: rmsprop、sgd

需要设置的优化器参数

在这里插入图片描述

常见的损失函数有:

在这里插入图片描述

常见的评价标准在这里插入图片描述

训练

在这里插入图片描述

分批训练

在这里插入图片描述

迭代训练

迭代训练相比较前两种较为复杂的,首先定义一个迭代器(即函数)

在这里插入图片描述

  • 有关yield关键字可自形百度了解。
    在这里插入图片描述

评估

在这里插入图片描述
对测试集进行评估,如果在模型编译的时候没有指明metricsmetricsmetrics
则返回Loss对应指标,否则返回metrics对应指标

同样fitfitfit也分批迭代评估。

在这里插入图片描述

预测

在这里插入图片描述

保存

在这里插入图片描述
加载第一种保存的模型》

在这里插入图片描述
载第二种只保存权重的模型,相比较第一种优点复杂,首先要定义好相应的模型后再加载

在这里插入图片描述

总结

明天将项目给其搞完整,会自己将各种项目都给其搞定。keras库会根据项目将其详细学习,学会模型搭建以及模型的构造都行啦的样子与打算。


http://www.ppmy.cn/news/18645.html

相关文章

ESP8266 ArduinoIDE 物联网web客户端开发

一、使用 esp8266 实现 HTTP 客户端协议 在 arduinoIDE 中,并没有专门的 HTTP 协议客户端库。但是我们可以用 TCP 协议来自动手动实现。 1.1 HTTP 请求报文简介 所谓请求报文,即是基于 TCP/IP 协议发送的一串规范字符,这串规范字符描述了当…

趣味三角——第2章——弦

目录 2.1 三角学的雏形与和弦表的产生 2.2 解读残缺粘土板“Plimpton 322”上的三角学 “知识来自影子&#xff0c;影子来自 磬折形(The knowledge comes from the shadow, and the shadow comes from the gnomon)” ——摘自<<Chou-pei Suan-king>>(周髀(b)算经…

RSD高分卫星数据处理能力提升——日正射处理数千景高分数据集

李国春 通常认为&#xff0c;能够单日处理几百景高分辨率对地观测卫星数据的系统就已经是非常优秀的卫星数据处理系统了。RSD此次优化将其处理能力提升超过了一个数量级&#xff0c;达到了单日正射处理数千景高分辨率卫星数据集的水平。 不仅如此&#xff0c;RSD达到如此高的…

实战20:基于MSCNNopencv 的食堂人群密度检测(附完整项目代码)

项目概述:本项目从生活细节出发,将计算机视觉应用在饭堂人数检测上,结合软硬件设施:算法基于深度卷积神经网络模型,硬件基于树莓派 RaspberryPi3 Model B,终端为 Web APP 或者公众号平台,学生可以通过终端获取饭堂人数密度热力图。 本次实验硬件通过组员手中原有的树莓派…

java面向接口编程2023027

那就再进一步&#xff1a;面向接口编程 面向接口编程前面已经提到&#xff0c;接口体现的是一种规范和实现分离的设计哲学&#xff0c;充分利用接口可以极好地降低程序各模块之间的耦合&#xff0c;从而提高系统的可扩展性和可维护性。 基于这种原则&#xff0c;很多软件架构设…

基于ffmpeg的视频处理与MPEG的压缩试验(下载安装使用全流程)

基于ffmpeg的视频处理与MPEG的压缩试验ffmpeg介绍与基础知识对提取到的图像进行处理RGB并转化为YUV对YUV进行DCT变换对每个8*8的图像块进行进行量化操作ffmpeg介绍与基础知识 ffmpeg是视频和图像处理的工具包&#xff0c;它的下载网址是https://ffmpeg.org/download.html。页面…

一起自学SLAM算法:7.3 估计理论

连载文章&#xff0c;长期更新&#xff0c;欢迎关注&#xff1a; 不管是用贝叶斯网络还是因子图&#xff0c;一旦SLAM问题用概率图模型得到表示后&#xff0c;接下来就是利用可观测量&#xff08;和&#xff09;推理不可观测量&#xff08;和&#xff09;&#xff0c;也就是说S…

8种时间序列分类方法总结

对时间序列进行分类是应用机器和深度学习模型的常见任务之一。本篇文章将涵盖 8 种类型的时间序列分类方法。这包括从简单的基于距离或间隔的方法到使用深度神经网络的方法。这篇文章旨在作为所有时间序列分类算法的参考文章。 时间序列定义 在涵盖各种类型的时间序列 (TS) 分…