【Python】nn.nn.CircularPad1、2、3d函数和nn.ConstantPad1、2、3d函数详解和示例

news2024/11/15 15:42:14

前言

在深度学习中,尤其是在处理图像、音频或其他多维数据时,数据填充(Padding)是一个常见的操作。填充不仅可以保持数据的空间维度,还能在卷积操作中避免信息丢失。PyTorch提供了多种填充方式,其中nn.CircularPadXd和nn.ConstantPadXd是两种常用的填充方法。本文将详细介绍nn.CircularPad1d、nn.CircularPad2d、nn.CircularPad3d以及nn.ConstantPad1d、nn.ConstantPad2d、nn.ConstantPad3d的函数原型、用法示例,并总结它们的特点。

  • 前言
  • 函数原型
    • nn.CircularPadXd
    • nn.ConstantPadXd
    • 示例
      • nn.CircularPad1、2、3d 示例
      • nn.ConstantPad1、2、3d 示例
  • 小结

函数原型

nn.CircularPadXd

nn.CircularPadXd(其中X可以是1、2或3)类用于使用循环填充(circular padding)方式填充输入张量(tensor)的边界。循环填充意味着在填充时使用输入张量边界的值来填充另一端。

nn.CircularPad1d(padding): 一维数据的循环填充。
nn.CircularPad2d(padding): 二维数据的循环填充,常用于图像。
nn.CircularPad3d(padding): 三维数据的循环填充,适用于视频帧或体积数据。
padding参数可以是一个整数或元组(tuple),表示在每个维度上的填充大小。

nn.ConstantPadXd

nn.ConstantPadXd(其中X可以是1、2或3)类用于使用常数填充(constant padding)方式填充输入张量的边界。

nn.ConstantPad1d(padding, value): 一维数据的常数填充。
nn.ConstantPad2d(padding, value): 二维数据的常数填充,常用于图像。
nn.ConstantPad3d(padding, value): 三维数据的常数填充,适用于视频帧或体积数据。
padding参数同上,value参数指定了填充的常数值。

示例

nn.CircularPad1、2、3d 示例

import torch
import torch.nn as nn

# 示例:nn.CircularPad2d
input = torch.arange(9, dtype=torch.float).reshape(1, 1, 3, 3)
print("Input:")
print(input)

pad = nn.CircularPad2d(1)
output = pad(input)
print("Output with CircularPad2d:")
print(output)

# 使用不同的填充大小
pad = nn.CircularPad2d((1, 2, 0, 1))
output = pad(input)
print("Output with different padding:")
print(output)

在这里插入图片描述

nn.ConstantPad1、2、3d 示例

import torch
import torch.nn as nn
# 示例:nn.ConstantPad2d
input = torch.arange(9, dtype=torch.float).reshape(1, 1, 3, 3)
print("Input:")
print(input)

pad = nn.ConstantPad2d((1, 2, 0, 1), value=10.0)
output = pad(input)
print("Output with ConstantPad2d:")
print(output)
print("***********************************")
# 三维数据示例
input_3d = torch.randn(1, 1, 2, 3, 4)
pad_3d = nn.ConstantPad3d((1, 2, 0, 1, 2, 3), value=5.0)
output_3d = pad_3d(input_3d)
print("Output with ConstantPad3d:")
print(output_3d)

在这里插入图片描述

小结

nn.CircularPadXd:使用循环填充方式,通过在张量边界值之间循环来填充数据。这对于需要保持数据连续性的场景特别有用。
nn.ConstantPadXd:使用指定的常数值来填充张量的边界。这种填充方式简单直接,适用于不需要特殊边界处理的场景。

无论是循环填充还是常数填充,都是深度学习中常用的数据预处理技术,它们能够帮助我们更好地控制数据的维度和边界条件,从而优化模型的训练效果。

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

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

相关文章

unity 本地使用Json(全套)

提示:文章有错误的地方,还望诸位大神不吝指教! 文章目录 前言一、Json是什么?二、创建Json文件1.在线编辑并转实体类(C#)2.Json文件 三、解析Json并使用四、报错:JsonError:JsonExce…

使用frp内网穿透将个人主机上的MySQL发布到公网上,再通过python管理MySQL

目录 1.frp内网穿透部署 1.frp服务器 1.开放端口 2.上传软件包 3.解压 4.配置文件 2.frp客户端 1.上传软件包 2.配置文件 3.启动测试 1.浏览器查看服务器上连接的客户端数量 2.启动测试 2.MySQL安装 3.python3的安装使用 4.python管理MySQL 1.pip 2.pandas 3.p…

Axure 变量魔法:揭秘局部与全局的动态协同

前言 在 Axure 的世界中,变量是连接设计者意图与用户行为的桥梁。 局部变量,以其独特的灵活性和针对性,允许我们在特定情境下快速响应用户的操作。 而全局变量,则以其广泛的覆盖范围,为跨页面的一致性和连贯性提供了…

003集——C#数据类型 及大小端序转换——C#学习笔记

如需得到一个类型或一个变量在特定平台上的准确尺寸,可以使用 sizeof 方法。表达式 sizeof(type) 产生以字节为单位存储对象或类型的存储尺寸。下面举例获取任何机器上 int 类型的存储尺寸: using System;namespace DataTypeApplication {class Program{…

第26课 Scratch入门篇:乘坐公交车

乘坐公交车 故事背景: 又是一天结束了,在繁忙的城市里,深夜加班的上班族们挤上最后一班公交车,回到自己温馨的家 程序原理: 这节课最大的难度就是角色的设计以及角色的切换,背景的不停移动其实跟“猫咪跑…

论MATLAB强大的容错性

如何看待“低代码”开发平台的兴起? “低代码”让非专业人士也能快速构建应用程序。这种新兴技术正在挑战传统软件开发模式,引发了IT行业的广泛讨论。低代码平台是提高效率的利器,还是降低了编程门槛导致质量下降?它会改变开发者…

【报错解决】MySQL报错:sql_mode=only_full_group_by

文章目录 报错信息DataGrip 报错还原Navicat 报错还原 报错原因解决方案查看当前 sql mode方案一:临时解决方案二:永久解决方案三:使用 any_value() 或 group_concat()方案四:调整实现思路,避开 GROUP BY 使用 我是一名…

赛博朋克未来的第一个创想,低空飞行走近现实

英特尔创始人Andy Grove曾在《Only the Paranoid Survive》(只有偏执狂才能生存)这本书中提到一个观点:战略拐点往往发生在一个竞争因素,或者多个竞争因素突然变成原来10倍的时候,这时候往往预示着生意本质已经发生改变…

基于大数据的气象数据分析与可视化系统设计与实现【爬虫海量数据,LSTM预测】

文章目录 有需要本项目的代码或文档以及全部资源,或者部署调试可以私信博主项目介绍研究目的研究意义研究思路可视化展示每文一语 有需要本项目的代码或文档以及全部资源,或者部署调试可以私信博主 项目介绍 本课题主要针对气象数据进行分析以及可视化…

【CPP】slt-list由认识到简化模拟实现深度理解~

关于我: 睡觉待开机:个人主页 个人专栏: 《优选算法》《C语言》《CPP》 生活的理想,就是为了理想的生活! 作者留言 PDF版免费提供:倘若有需要,想拿我写的博客进行学习和交流,可以私信我将免费提供PDF版。…

大数据信用报告查询哪家平台的比较好?

相信在搜索大数据信用的你,已经因为大数据信用不好受到了挫折,想详细了解一下自己的大数据信用,但是找遍了网络上的平台之后才发现,很多平台都只提供查询服务,想要找一个专业的平台查询和讲解很困难。下面本文就为大家…

【MongoDB】2.MongoDB导入文件

目录 一、MongoDB Compass 二、mongoimport 1、安装 2、语法: 3、可能出现的错误 三、MongoDB的GridFS 1、介绍 2、语法 一、MongoDB Compass 这个简单,不做赘述 二、mongoimport Mongoimport是一个用于导入数据到MongoDB的工具,默…

IWDG 溢出时间计算

iwdg看门狗溢出时间,就是之前算过的,但是再记录一次 计算过程如下:因为iwdg是独立看门狗,是用的LSI, 所以在f1系列lsi的时钟频率是40khz,也就是Fiwdg的频率是40khz,频率除以psc(分频系数&#…

计算机毕业设计 校园志愿者管理系统 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试

🍊作者:计算机编程-吉哥 🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。 🍊心愿:点…

C++ | Leetcode C++题解之第331题验证二叉树的前序序列化

题目&#xff1a; 题解&#xff1a; class Solution { public:bool isValidSerialization(string preorder) {int n preorder.length();int i 0;int slots 1;while (i < n) {if (slots 0) {return false;}if (preorder[i] ,) {i;} else if (preorder[i] #){slots--;i…

全面介绍 Apache Doris 数据灾备恢复机制及使用示例

引言 Apache Doris 作为一款 OLAP 实时数据仓库&#xff0c;在越来越多的中大型企业中逐步占据着主数仓这样的重要位置&#xff0c;主数仓不同于 OLAP 查询引擎的场景定位&#xff0c;对于数据的灾备恢复机制有比较高的要求&#xff0c;本篇就让我们全面的介绍和示范如何利用这…

红黑树的插入与删除

文章目录 红黑树概念红黑树的性质&#xff1a; 红黑树的插入操作情况一情况二情况三 小总结红黑树的验证红黑树的删除一.删除单孩子节点1. 删除节点颜色为黑色2. 删除颜色为红色 二. 删除叶子节点1. 删除节点为红色2.删除节点为黑色2.1兄弟节点为黑色&#xff0c;有孩子节点&am…

window下redis的安装

下载地址&#xff1a;https://github.com/tporadowski/redis/releases Windows下的.msi安装和.zip格式区别&#xff1a; .msi是Windows installer开发出来的程序安装文件&#xff0c;它可以让你安装&#xff0c;修改&#xff0c;卸载你所安装的程序。说白了.msi就是Windows in…

KeyFreeze 1.0.1.0 临时禁用电脑鼠标和键盘

KeyFreeze 是一个免费实用的临时禁用电脑鼠标和键盘的软件&#xff1b;软件支持 Windows 。 它完全免费&#xff0c;体积非常小巧&#xff0c;使用场景是当你在某些时候需要临时禁用鼠标和键盘&#xff0c;让鼠标和键盘无法使用&#xff0c;防止误触。 开软件只有一个按钮&am…

stm32入门-----硬件SPI读写W25Q64

目录 前言 一、相关库函数介绍 1.初始化 2.写入数据 3.接收数据 4.获取标志位 二、软件SPI读写W25Q64 前言 上一期我们学习了stm32的SPI外设&#xff08;上一期链接&#xff1a;stm32入门-----硬件SPI外设-CSDN博客&#xff09;&#xff0c;那么我们本期就来…