神经网络:卷积的padding为SAME或VALID

news2024/12/22 20:43:55
1:卷积运算原理(直接看图)

在这里插入图片描述
①由图可知,output[0][0] = 视野域 * 卷积核(矩阵点击运算,对应位相乘然后求和,视野域形状与卷积核一致),而output[0][1] = 下一视野域 * 卷积核,如下图:
在这里插入图片描述
下一视野域的挪动位置与超参数strides = s(这里为1)有关,s为多少每次就挪动多少个格子(挪动到尽头时还未到达s个格子则放弃该次卷积运算),到达当前行尽头时,则output第一行的计算就完成了;②这次向下挪动s格,列转到第0列(下标从0开始)然后开始output的第二行计算;③重复上述操作,最后输出output。

output的形状满足公式:1 + (n - k) // s,其中input形状为 nxn(这里5x5),卷积核形状为 kxk(这里3x3),双斜杠为整除。

2:padding的取值(VALID 或 SAME)

①当padding = VALID时,结果为上述案例。
代码演示(tensorflow版):

import tensorflow as tf
import numpy as np

# input.shape: [sample, height, width, in_channel]
# kernel.shape: [k, k, in_channel, out_channel]
input = tf.constant(range(1, 26), dtype=tf.float32)
input = tf.reshape(input, (1, 5, 5, 1))
kernel = tf.ones((3, 3, 1, 1)) # 卷积核

tf.squeeze(input), tf.squeeze(kernel) # tf squeeze去除维度 == 1的轴,便于阅读

在这里插入图片描述

output = tf.nn.conv2d(a, kernel, strides=1, padding='VALID') # strides 也可以 = [1, 1] ,分别设置高与宽方向的步幅
# output.shape: [sample, Df, Df, out_channel], Df=1 + (n - k) // s
output.shape

在这里插入图片描述

tf.squeeze(output)

在这里插入图片描述
结果符合预期!

②padding = SAME
卷积运算如下图
在这里插入图片描述上下左右填充的0行数为 (k - 1) // 2,且k的取指一般为奇数;当 k 取偶数时,右边与下边的0行数就会比左边与上边的0行数多1行。当padding = same时,pytorch中strides 必须等于1
代码演示:

output_same = tf.nn.conv2d(input, kernel, strides=[1, 1, 1, 1], padding='SAME')
tf.squeeze(output_same)

在这里插入图片描述
结果符合预期。
欢迎提问!

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

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

相关文章

软件测试的案例分析 - 闰年4.1

文章目的 显示不同的博客能获得多少博客质量分 (这是关于博客质量分的测试 https://www.csdn.net/qc) 这个博客得了 60 分。 希望获得 70 分左右 正文 我们谈了不少测试的名词, 软件是人写的, 测试计划和测试用例也是人写的, 人总会犯错误。错误发生之后, 总有人…

docker安装rabbitmq以及rabbitmq_management、rabbitmqctl管理工具

💧 d o c k e r 安装 r a b b i t m q 以及 r a b b i t m q m a n a g e m e n t 、 r a b b i t m q c t l 管理工具 \color{#FF1493}{docker安装rabbitmq以及rabbitmq_management、rabbitmqctl管理工具} docker安装rabbitmq以及rabbitmqm​anagement、rabbitmqct…

[Eigen中文文档] 稠密矩阵分解函数对比

文档总目录 英文原文(Benchmark of dense decompositions) 本页介绍了 Eigen 为各种方阵和过约束问题提供的稠密矩阵分解的速度比较。 有关线性求解器、分解的特征和数值鲁棒性的更一般概述,请查看 此表。 该基准测试已在配备英特尔酷睿 i7 2.6 GHz 的笔记本电…

HIVE获取json字段特定值(单个json或者json数组)

1.获取单个json字符串里的某一特定值 函数:get_json_object(单个json,‘$.要获取的字段’) 示例: 代码:SELECT get_json_object(‘{“NAME”:“张三”,“ID”:“1”}’,‘$.NAME’) as name; SELECT get_json_object(‘{“NAME”:“张三”…

【 Python 全栈开发 - WEB开发篇 - 31 】where条件查询

文章目录 一、where条件查询1.关系运算符查询2.IN关键字查询3.BETWEEN AND关键字查询4.空值查询5.AND关键字查询6.OR关键字查询7.LIKE关键字查询普通字符串含有%通配的字符串含有_通配的字符串 一、where条件查询 MySQL 的 where 条件查询是指在查询数据时,通过 wh…

golang gocv 0.32版本windows安装 opencv4.7 依赖

准备工作: 修改Host 185.199.108.133 raw.githubusercontent.com 185.199.109.133 raw.githubusercontent.com 185.199.110.133 raw.githubusercontent.com 185.199.111.133 raw.githubusercontent.com 140.82.114.3 github.com 安装cmake与MinGW-W64 cmake下载地址…

Nacos架构与原理 - 寻址机制

文章目录 前提设计MemberLookup内部实现单机寻址 StandaloneMemberLookup文件寻址 FileConfigMemberLookup地址服务器寻址 AddressServerMemberLookup 未来可扩展点 前提 Nacos 支持单机部署以及集群部署 针对单机模式,Nacos 只是自己和自己通信;对于集…

Hbase---hfile

逻辑数据组织格式 Scanned block section:表示顺序扫描HFile时(包含所有需要被读取的数据)所有的数据块将会被读取,包括Leaf Index Block和Bloom Block;Non-scanned block section:HFile顺序扫描的时候该…

list容器会了吗?一文搞定它

这里写目录标题 list 数据链式存储大小操作插入操作list数据存取list容器的反转和排序 list 数据链式存储 list的优点 1.采用动态存储分配,不会造成内存浪费和溢出 2.链表执行插入和删除操作十分简单,修改指针即可,不需要移动大量元素 缺点…

低代码开发与数智制造:数字转型的无缝结合

随着工业4.0的到来,数智制造已经成为制造业发展的趋势,而低代码开发技术则是近几年兴起的一种轻量级开发方式,这两者之间的结合将为制造业的数字化转型打下坚实的基础。 低代码开发平台有什么特点? 首先让我们来厘清一下&#xff…

STC12C5A60S2最小系统板/51单片机温度显示和温度控制风扇

STC12C5A60S2最小系统板/51单片机温度显示和温度控制风扇,板载有DS18B20和TM16504位数码管。 项目简介 单片机课课程设计,要做一个智能温控风扇,达到设定的下限温度值就开启风扇,温度在上限和下限之间就按比例输出PWM占空比控制…

基于jsp+mysql+Spring+mybatis的Springboot旅游网站管理系统

运行环境: 最好是java jdk 1.8,我在这个平台上运行的。其他版本理论上也可以。 IDE环境: Eclipse,Myeclipse,IDEA或者Spring Tool Suite都可以,如果编译器的版本太低,需要升级下编译器,不要弄太低的版本 tomcat服务器环…

AI回答:绩效考核有哪些方法,基本靠谱

AI回答:绩效考核有哪些方法,基本靠谱 建立有效的绩效考核机制,比较难 但没有考核机制,就无法评价优劣 趣讲大白话:赏罚两字,千古大事 【趣讲信息科技191期】 **************************** 互联网企业现在流…

11 GMM——高斯混合模型

文章目录 11 GMM——高斯混合模型11.1 模型介绍11.2 通过MLE估计参数11.3 EM求解 11 GMM——高斯混合模型 11.1 模型介绍 从几何角度来说: 高斯混合模型表示:加权平均——由多个高斯分布混合叠加而成,如图 公式可以表达为: p…

【Jmeter】提取和引用Token

1.执行获取token接口 在结果树这里,使用$符号提取token值。 $根节点,$.data.token表示提取根节点下的data节点下的token节点的值。 2.使用json提取器,提取token 变量路径就是把在结果树提取的路径写上。 3.使用BeanShell取样器或者BeanShell后…

(数组) 941. 有效的山脉数组 ——【Leetcode每日一题】

❓941. 有效的山脉数组 难度:简单 给定一个整数数组 arr,如果它是有效的山脉数组就返回 true,否则返回 false。 让我们回顾一下,如果 arr 满足下述条件,那么它是一个山脉数组: arr.length > 3在 0 &…

Redis指令-认识NoSQl和Redis常见的通用命令

1. 认识NoSQL 非关系型数据库 NoSQL是指一类非关系型数据库,它们采用的数据模型不同于传统的关系模型,它通常使用键值对、文档、图形等非传统的数据结构进行数据存储,不遵循预定义的模式和模型。NoSQL数据库通常分布式、高可扩展性&#xff0…

4.多线程之JUC并发编程1

1.List集合类不安全(以前单线程永远是安全的,多线程集合就不安全了) 都是ConcurrentModificationException并发修改异常,在有sout输出的情况下出来的,因为多线程边读边写 //并发情况下ArrayList是不安全的 可以用Vector在jdk1.0出来的,List1.2出来的加了同步锁 List listnew Ve…

瑞吉外卖业务开发

数据库 我电脑上的数据库登录指令:mysql -uroot -p123456常用指令:show databases、user 数据库名、show tables。 创建项目 创建完项目后,要及时检查maven仓库的配置,jdk的配置,项目的编码,如下图。 配…

数据同步智能化!利用ETLCloud自动化流程实现钉钉OA系统数据自动同步至数仓

钉钉数据同步需求 钉钉是一款企业级通讯和协同办公应用软件,钉钉为企业提供包括聊天、通讯录、日程安排、考勤打卡、审批、通知公告、文件共享、会议等功能,很多企业都在使用钉钉。 很多情况下我们需要把钉钉的数据拉取到数据库中,然后再通…