详解Keras3.0 Layers API: Convolution layers(Conv1D、Conv2D、Conv3D)

1、Conv1D layer

通常对一维度数组(例:arr = np.array([1, 2, 3, 4, 5]))进行卷积操作

keras.layers.Conv1D(filters,kernel_size,strides=1,padding="valid",data_format=None,dilation_rate=1,groups=1,activation=None,use_bias=True,kernel_initializer="glorot_uniform",bias_initializer="zeros",kernel_regularizer=None,bias_regularizer=None,activity_regularizer=None,kernel_constraint=None,bias_constraint=None,**kwargs
)
参数说明
  • filters: 输出空间的维度,即卷积核的数量
  • kernel_size:卷积核的大小,可以是一个整数或一个整数元组
  • strides:卷积步长,默认为1
  • padding:填充方式,可以是"valid"(不填充)或"same"(填充以保持输入和输出的尺寸相同)
  • data_format:数据格式,可以是"channels_first"(通道在前)或"channels_last"(通道在后),默认为None,将根据后端自动确定
  • dilation_rate:空洞卷积的扩张率,定义卷积核中间的位置与周围位置的间隔大小默认为1
  • groups:分组卷积的组数,默认为1
  • activation:激活函数,默认为None
  • use_bias:是否使用偏置项,默认为True
  • kernel_initializer:卷积核权重的初始化方法,默认为"glorot_uniform"
  • bias_initializer:偏置项的初始化方法,默认为"zeros"
  • kernel_regularizer:卷积核权重的正则化器,默认为None
  • bias_regularizer: 偏置项的正则化器,默认为None
  • activity_regularizer:输出的正则化器,默认为None
  • kernel_constraint:卷积核权重的约束条件,默认为None
  • bias_constraint:偏置项的约束条件,默认为None
  • **kwargs :其他关键字参数
示例
#创建一个形状为(4, 10, 128)的随机数组作为输入数据
x = np.random.rand(4, 10, 128)#使用Conv1D层进行卷积操作,32表示输出通道数,即卷积后的特征图数量;3表示卷积核的大小,即卷积核的高度为3。激活函数选择为ReLU
y = keras.layers.Conv1D(32, 3, activation='relu')(x)print(y.shape)
(4, 8, 32)

2、 Conv2D layer

通常对二维度数组(例:arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]))进行卷积操作

keras.layers.Conv2D(filters,kernel_size,strides=(1, 1),padding="valid",data_format=None,dilation_rate=(1, 1),groups=1,activation=None,use_bias=True,kernel_initializer="glorot_uniform",bias_initializer="zeros",kernel_regularizer=None,bias_regularizer=None,activity_regularizer=None,kernel_constraint=None,bias_constraint=None,**kwargs
)
参数说明 

对于Conv2D主要用于处理二维平面数据,其参数与Conv1D的略有不同。如:

  • kernel_size:表示卷积核的大小,可以是单个整数或一个元组/列表。对于一维卷积,它表示卷积核的高度;对于二维卷积,它表示卷积核的高度、宽度。
  • strides:表示卷积操作的步长,可以是单个整数或一个元组/列表。对于一维卷积,它表示卷积核在输入数据上移动的距离;对于二维卷积,它表示卷积核在每个维度上移动的距离。
  • padding:表示输入数据周围填充的值,可以是"valid"(不进行填充)、"same"(使用相同的填充值)或其他字符串。对于一维卷积,填充应用于输入序列的两侧;对于二维卷积,填充应用于输入数据的每个维度的两侧。
  • dilation_rate:是用于定义卷积核中间的位置与周围位置的间隔大小,主要影响了特征图的大小和感受野的范围,对于二维卷积,它表示卷积核在每个维度上间隔的大小。
示例
#创建一个形状为(4, 10, 10, 128)的随机数组作为输入数据
x = np.random.rand(4, 10, 10, 128)#使用Conv2D层进行卷积操作,输出通道数为32,卷积核大小为3x3,激活函数为ReLU
y = keras.layers.Conv2D(32, 3, activation='relu')(x)print(y.shape)
(4, 8, 8, 32)

 3、Conv3D layer

通常对二维度数组(例:np.array([[[1, 2, 3], [4, 5, 6], [7, 8, 9]], [[10, 11, 12], [13, 14, 15], [16, 17, 18]]]))进行卷积操作

keras.layers.Conv3D(filters,kernel_size,strides=(1, 1, 1),padding="valid",data_format=None,dilation_rate=(1, 1, 1),groups=1,activation=None,use_bias=True,kernel_initializer="glorot_uniform",bias_initializer="zeros",kernel_regularizer=None,bias_regularizer=None,activity_regularizer=None,kernel_constraint=None,bias_constraint=None,**kwargs
)
参数说明 

对于Conv3D主要用于处理三维数据,其参数与Conv1D的略有不同。如:

  • kernel_size:表示卷积核的大小,可以是单个整数或一个元组/列表。对于一维卷积,它表示卷积核的高度;对于三维卷积,它表示卷积核的高度、宽度、深度。
  • strides:表示卷积操作的步长,可以是单个整数或一个元组/列表。对于一维卷积,它表示卷积核在输入数据上移动的距离;对于三维卷积,它表示卷积核在每个维度上移动的距离。
  • padding:表示输入数据周围填充的值,可以是"valid"(不进行填充)、"same"(使用相同的填充值)或其他字符串。对于一维卷积,填充应用于输入序列的两侧;对于三维卷积,填充应用于输入数据的每个维度的两侧。
  • dilation_rate:是用于定义卷积核中间的位置与周围位置的间隔大小,主要影响了特征图的大小和感受野的范围,对于三维卷积,它表示卷积核在每个维度上间隔的大小。
 示例
#生成一个形状为(4, 10, 10, 10, 128)的随机张量
#其中4表示批次大小,10、10和10分别表示每个3D张量的深度、高度和宽度
#128表示每个3D张量的通道数
x = np.random.rand(4, 10, 10, 10, 128)#创建一个3D卷积层,该层具有32个输出通道(即卷积核的数量)
#每个卷积核的大小为3x3x3,激活函数为ReLU
#这个卷积层被应用到输入张量x上,得到输出张量y
y = keras.layers.Conv3D(32, 3, activation='relu')(x)print(y.shape)
(4, 8, 8, 8, 32)

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

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

相关文章

职场记6:在国企工作,追逐挑战与成就

上一篇《职场记5:勇闯深圳,追梦职场》 上回说到我决定入职一家国企,去入职后才发现,我应聘的岗位其实只招一人,加上我却一共来了两个人,也就是说我和另一个新人最终要有一个离开。 尽管我和他有着一定的竞…

SystemVerilog基础:并行块fork-join、join_any、join_none(二)

相关阅读 SystemVerilog基础https://blog.csdn.net/weixin_45791458/category_12517449.html 在第一节中,我们讨论了并行块中的fork-join块和fork-join_any块,了解了它们的差异,本文将继续讨论fork-join_none块的使用。 fork-join_none并行块…

12.12_黑马数据结构与算法笔记Java

目录 079 优先级队列 无序数组实现 080 优先级队列 有序数组实现 081 优先级队列 堆实现 1 082 优先级队列 堆实现 2 083 优先级队列 堆实现 3 084 优先级队列 e01 合并多个有序链表1 084 优先级队列 e01 合并多个有序链表2 085 阻塞队列 问题提出 086 阻塞队列 单锁实…

5个创建在线帮助文档的好方法!

在线帮助文档是企业为用户提供支持服务的重要工具,它能够帮助用户更好地了解和使用产品,提高用户体验。然而,创建一份优秀的在线帮助文档需要掌握一定的技巧和方法。接下来就介绍一下创建在线帮助文档的5个好方法,帮助企业更好地为…

Linux: network:tcp: option: TCP_INFO

https://www.man7.org/linux/man-pages/man7/tcp.7.html https://www.man7.org/linux/man-pages/man8/ss.8.html 从TCP的使用手册上看,这个选项的作用是返回一个结构体数据。2.4 就引入了,其实大家可以用起来这个选项。 TCP_INFO (since Linux 2.4) Used to collect informa…

【JavaWeb学习笔记】10 - 手写Tomcat底层,Maven的初步使用

一、Maven 1.Maven示意图 类似Java访问数据库 2.创建Maven案例演示 配置阿里镜像 找到setting目录 但一开始配置不存在该文件 需要去Maven主目录下的conf拿到settings拷贝到上述目录 拷贝到admin/.m2后打开该settings 在<mirrors>内输入镜像地址 <mirror> …

C语言—每日选择题—Day52

第一题 1. 执行c程序代码&#xff0c;a,b,c,d的值分别为&#xff08;&#xff09; int a 1; int b 0; int c 0; int d (a) * (c 1); A&#xff1a;2&#xff0c;0&#xff0c;1&#xff0c;2 B&#xff1a;1&#xff0c;0&#xff0c;1&#xff0c;1 C&#xff1a;2&…

Docker--Docker镜像仓库

一、搭建私有镜像仓库 搭建镜像仓库可以基于Docker官方提供的DockerRegistry来实现。 官网地址&#xff1a;https://hub.docker.com/_/registry &#xff08;一&#xff09;简化版镜像仓库 Docker官方的Docker Registry是一个基础版本的Docker镜像仓库&#xff0c;具备仓库…

线下实体门店引流,百万私域电商高手都在用的实战营销引流技巧!

线下实体门店引流&#xff0c;百万私域电商高手都在用的实战营销引流技巧&#xff01; 无论是初创公司还是已经在步入正轨的实体门店&#xff0c;有个现实的实例告诉你&#xff1a;互联网上90%的引流技巧告诉你的方法&#xff0c;其实都是不挣钱的&#xff0c;辛辛苦苦折腾一整…

大数据技术之Shell(超级详细)

大数据技术之Shell&#xff08;超级详细&#xff09; 第1章 Shell概述 Shell 是一种脚本语言&#xff0c;用于在操作系统的命令行界面&#xff08;CLI&#xff09;下执行命令和脚本。在大数据领域&#xff0c;Shell 脚本常用于编写数据处理和分析任务的自动化脚本&#xff0c…

Redis设计与实现之对象处理机制

目录 一、前言 二、对象处理机制 1、redisObject 数据结构&#xff0c;以及 Redis 的数据类型 2、 命令的类型检查和多态 3、对象共享 4、引用计数以及对象的销毁 三、对象的处理 1、Redis是如何处理字符串对象的&#xff1f; 2、Redis是如何处理列表对象的&#xff1f…

使用Selenium与Scrapy处理动态加载网页内容的解决方法

博客正文&#xff08;包含详细注释&#xff09; 引言 在爬虫技术领域&#xff0c;处理动态加载的网页内容常常是一项挑战&#xff0c;尤其是对于那些通过用户滚动或其他交互动态加载更多内容的网站。本文将介绍如何结合使用Selenium和Scrapy来有效处理这类网页。 初探Seleni…

十九)Stable Diffusion使用教程:ai室内设计案例

今天我们聊聊如何通过SD进行室内设计装修。 方式一:controlnet的seg模型 基础起手式: 选择常用算法,抽卡: 抽到喜欢的图片之后,拖到controlnet里: 选择seg的ade20k预处理器,点击爆炸按钮,得到seg语义分割图,下载下来: 根据语义分割表里的颜色值,到PS里进行修改: 语…

制作一个简单 的maven plugin

流程 首先&#xff0c; 你需要创建一个Maven项目&#xff0c;推荐用idea 创建项目 会自动配置插件 pom.xml文件中添加以下配置&#xff1a; <project> <!-- 项目的基本信息 --> <groupId>com.example</groupId> <artifactId>my-maven-plugi…

封装调用的js方法

// 防止处理多次点击 function noMultipleClicks(methods, info) { // methods是需要点击后需要执行的函数&#xff0c; info是点击需要传的参数 let that this; if (that.noClick) { // 第一次点击 that.noClick false; if (info &…

深入理解JVM设计的精髓与独特之处

这是Java代码的执行过程 从软件工程的视角去深入拆解&#xff0c;无疑极具吸引力&#xff1a;首个阶段仅依赖于源高级语言的细微之处&#xff0c;而第二阶段则仅仅专注于目标机器语言的特质。 不可否认&#xff0c;在这两个编译阶段之间的衔接&#xff08;具体指明中间处理步…

javacv的视频截图功能

之前做了一个资源库的小项目&#xff0c;因为上传资源文件包含视频等附件&#xff0c;所以就需要时用到这个功能。通过对视频截图&#xff0c;然后作为封面缩略图&#xff0c;达到美观效果。 首先呢&#xff0c;需要准备相关的jar包&#xff0c;之前我用的是低版本的1.4.2&…

25个校招网络编程面试题

1、什么是IO多路复用 I/O多路复用的本质是使用select,poll或者epoll函数&#xff0c;挂起进程&#xff0c;当一个或者多个I/O事件发生之后&#xff0c;将控制返回给用户进程。以服务器编程为例&#xff0c;传统的多进程(多线程)并发模型&#xff0c;在处理用户连接时都是开启一…

极简Excel公式拆分合并单元格并自动填充

例如这个表格&#xff1a; 我们希望拆分合并单元格&#xff0c;并填充到E列。结果如&#xff1a; 步骤 1&#xff09;在E2输入公式如下&#xff1a; LOOKUP(2,1/($B$2:B2<>""),$B$2:B2) 2&#xff09;下拉E2至E9将公式填充即可 注意&#xff1a;公式中的$…

基于ssm游戏美术外包管理信息系统源码和论文

摘 要 随着信息技术和网络技术的飞速发展&#xff0c;人类已进入全新信息化时代&#xff0c;线下管理技术已无法高效&#xff0c;便捷地管理信息。为了迎合时代需求&#xff0c;优化管理效率&#xff0c;各种各样的管理系统应运而生&#xff0c;各行各业相继进入信息管理时代&…