使用Keras搭建深度学习模型

news2024/11/15 15:58:34

前言

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

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

keras

代码架构

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

模型

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

输入层

  • 输入层的作用时规定了模型输入的shape
from keras.layers import Input

ipt = 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
    在这里插入图片描述

输出层

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

在这里插入图片描述

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

搭建

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

定义

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

编译

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

在这里插入图片描述

常见的优化器有: rmsprop、sgd

需要设置的优化器参数

在这里插入图片描述

常见的损失函数有:

在这里插入图片描述

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

训练

在这里插入图片描述

分批训练

在这里插入图片描述

迭代训练

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

在这里插入图片描述

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

评估

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

同样 f i t fit fit也分批迭代评估。

在这里插入图片描述

预测

在这里插入图片描述

保存

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

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

在这里插入图片描述

总结

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/175670.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2022年智源社区年度热点推荐丨新春集锦

本文为2022年最受智源社区小伙伴喜爱的文章,根据文章质量和热门程度等维度计算得出。还有AI大佬的全年总结盘点总结,也一并推荐给你。虎年除旧,兔年迎新,藉此机会、智源编辑组全员谨祝大家新春快乐!2022智源社区20篇最…

LINUX学习之网络配置(十一)

1.修改IP地址 使用ifconfig命令 例如要将eth0接口的IP地址更改为192.168.1.100,你可以使用以下命令 ifconfig eth0 192.168.1.100如果你想为IP地址设置子网掩码,可以使用“netmask”参数。例如,要将eth0接口的子网掩码设置为255.255.255.0…

[Linux]进程优先级 Linux中的环境变量

🥁作者: 华丞臧. 📕​​​​专栏:【LINUX】 各位读者老爷如果觉得博主写的不错,请诸位多多支持(点赞收藏关注)。如果有错误的地方,欢迎在评论区指出。 推荐一款刷题网站 👉 LeetCode刷题网站 文…

liunx centos9中安装Redis数据库,并在win10中连接redis图文详解

首先我们去Redis的官网点击download下载tar的压缩包 https://redis.io/download/#redis-downloads 用xftp将安装包上传到你的liunx服务器本地地址 解压 tar -xvf /root/redis-7.0.8.tar.gz cd进入你刚才解压的文件夹中 cd /root/redis-7.0.8 执行make进行编译 编译完成后cd进入…

普中科技MicroPython基于esp32的基础教程-03-字符串

目录 字符串 字符串的表示方式 普通字符串 原始字符串 长字符串 字符串与数字相互转换 将字符串转换为数字 将数字转换为字符串 格式化字符串 占位符% format方法 f-strings 操作字符串 字符串拼接 字符串查找 字符串替换 字符串分割 去处字符串两…

目标检测:Focal Loss

目标检测:Focal Loss前言Focal LossCross Entropybalanced Cross EntropyFocal Loss Definition前言 Focal loss这个idea来源于论文《Focal Loss for Dense Object Detection》,主要是为了解决正负样本、难易样本不平衡的问题。 Focal Loss Cross Entropy 在目标…

不懂Pod?不足以谈K8s

文章目录✨ 前言1. myblog改造及优化2. Pod生命周期🍑 如何编写资源 yaml🍑 pod状态与生命周期3. Pod操作总结✨ 前言 在上一篇文章中,我们学习了 Pod 的常用设置,那么这篇文章咱们继续开动! K8s落地实践之旅 —— P…

LabVIEW异步调用VI的多个实例实现并行执行

LabVIEW异步调用VI的多个实例实现并行执行默认情况下,如对一个VI进行多个异步调用,LabVIEW将这些调用按顺序排列,依次执行。各个调用的执行时间累加,效率不高。按照下列步骤,并行执行各个调用,避免一个调用…

Python小技巧:__str__()的妙用

前言 这里是Python小技巧的系列文章。这是第三篇,object.__str__(self)方法的妙用。 书接上回,这次还是介绍Python类的内置方法,__str__() 据官方文档的介绍,在使用 str(object) 、format() 和 print() 的时候会调用__str__() 方…

一文搞懂go并发编程设计原理

前言 主要学习其设计原则,大体流程,权衡利弊 不要纠结于部分难懂的实现细节,因为不同的人对相同接口的实现细节不一样,就算是相同的人实现两次也可能不一样 context context的作用主要有两个: 在整个请求的执行过程…

stm32 笔记 PWM输入模式测量脉宽和占空比原理

一、PWM 输入模式测量脉宽 1.1 测量脉宽简介 在测量占空比之前,我们先一步一步来,先让 STM32 可以测量脉宽。 TIM3_CH1(tim3 定时器通道 1)捕获模式测量脉宽步骤如下: 1.输入捕获到 PWM 上升沿触发 2.发送中断&am…

机器视觉_HALCON_快速向导_2.用HALCON开发程序

文章目录使用HALCON开发应用程序1. 认识HALCON:架构&数据结构1.1. HALCON算子1.2. 参数与数据结构1.2.1. Images 图像1.2.2. Regions 区域1.2.3. XLDS 扩展线1.2.4. Handles 句柄1.2.5. Tuple Mode 元组模式1.3. HALCON与并行编程1.4. HALCON支持计算设备1.5. H…

grant之后要跟着flush privileges吗?

在 MySQL 里面,grant 语句是用来给用户赋权的。不知道你有没有见过一些操作文档里面提到,grant 之后要马上跟着执行一个 flush privileges 命令,才能使赋权语句生效。我最开始使用 MySQL 的时候,就是照着一个操作文档的说明按照这个顺序操作的。 那么,grant 之后真的需要…

33.Isaac教程--操纵运动学

操纵运动学 ISAAC教程合集地址文章目录操纵运动学应用架构实施细节正向运动学逆运动学小码为了控制机器人手臂的运动,需要数学表示法来计算执行器输入并为轨迹规划器表示障碍物。 为实现这一点,操纵运动学 GEM 将铰接式机器人系统表示为连接的刚体&#…

Linux常用命令——sudo命令

在线Linux命令查询工具(http://www.lzltool.com/LinuxCommand) sudo 以其他身份来执行命令 补充说明 sudo命令用来以其他身份来执行命令,预设的身份为root。在/etc/sudoers中设置了可执行sudo指令的用户。若其未经授权的用户企图使用sudo,则会发出警…

pytorch深度学习基础(九)——深入浅析卷积核

深入浅析卷积核引言单通道卷积简单图像边缘检测锐化高斯滤波引言 提到卷积,应该多数人都会想到类似上图的这种示例,可以简单的理解成卷积核与图像中和卷积核相同大小的一块区域与卷积核相乘再求和,通过移动区域产生一个有和组成的新的图像&am…

Python烟花秀

前言 Python跨年烟花表演,具体源码见:Python跨年烟花代码-Python文档类资源-CSDN下载 烟花的粒子类 class particle: #烟花的粒子类 def __init__(self,canvas,num,sums,x,y,x_speed,y_speed,explosion_speed,color,size,max_life): sel…

第四章必备前端基础知识-第二节2:CSS属性

文章目录一:CSS属性一览表二:常用属性详解(1)字体属性(2)文本属性(3)背景属性一:CSS属性一览表 W3C:元素属性 A: align-content规定弹性容器内…

Android studio版本对用的gradle版本和插件版本(注意事项)

简介 Android Studio 构建系统以 Gradle 为基础,并且 Android Gradle 插件添加了几项专用于构建 Android 应用的功能。虽然 Android 插件通常会与 Android Studio 的更新步调保持一致,但插件(以及 Gradle 系统的其余部分)可独立于…

实体店运营:能提高顾客留存率的店铺陈列方式

今天是大年初一,秦丝祝各位商户老板新年快乐,喜迎开门红,赚个盆满钵满!现在还在营业的实体店应该不多了吧?大部分老板都回家团圆了。忙忙碌碌一整年,好不容易到了年关,好好休息是应该的。但是店…