位置: IT常识 - 正文

PyTorch之F.pad的使用与报错记录(pytorch f)

编辑:rootadmin
PyTorch之F.pad的使用与报错记录 F.pad的使用与报错记录

推荐整理分享PyTorch之F.pad的使用与报错记录(pytorch f),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:pytorch pad,pytorch f,pytorch f,pytorch f,pytorch f,pytorch paddle,pytorch f.pad,pytorch paddlepaddle,内容如对您有帮助,希望把文章链接给更多的朋友!

原始文档:https://www.yuque.com/lart/ugkv9f/iftd9v

函数原型

函数文档:https://pytorch.org/docs/1.12/generated/torch.nn.functional.pad.html#torch-nn-functional-pad

torch.nn.functional.pad(input, pad, mode='constant', value=None) → TensorPadding格式1D-tensor:(p_left, p_right)2D-tensor:(p_left, p_right, p_top, p_bottom)3D-tensor:(p_left, p_right, p_top, p_bottom, p_front, p_back)四种模式

这一函数用于实现对高维tensor的形状补齐操作。PyTorch本身提供了四种padding模式:

constant:使用指定的常数value补齐指定的维度。对于数据012,使用0补齐,结果可以为0001200。reflect:使用tensor自身的值按照“反射”的方式补齐指定的维度。对于数据012,结果可以为2101210。replicate:使用tensor自身边界值补齐指定的维度。对于数据012,结果可以为0001222。circular:使用tensor自身的值按照“循环”的方式补齐指定的维度。对于数据012,结果可以为1201201。

需要注意的是,文档强调了这一点:

PyTorch之F.pad的使用与报错记录(pytorch f)

Constant padding is implemented for arbitrary dimensions. Replicate and reflection padding are implemented for padding the last 3 dimensions of a 4D or 5D input tensor, the last 2 dimensions of a 3D or 4D input tensor, or the last dimension of a 2D or 3D input tensor.

这四种模式使用输出展示会更便于理解一些,下面是一个例子:

import torchimport torch.nn.functional as Fpad = [2, 2, 2, 2]x = torch.arange(9, dtype=torch.float32).reshape(1, 1, 3, 3)print("x")print(x)print("F.pad(x, pad=pad, mode='constant', value=0)")print(F.pad(x, pad=pad, mode='constant', value=0))print("F.pad(x, pad=pad, mode='replicate')")print(F.pad(x, pad=pad, mode='replicate'))print("F.pad(x, pad=pad, mode='reflect')")print(F.pad(x, pad=pad, mode='reflect'))print("F.pad(x, pad=pad, mode='circular')")print(F.pad(x, pad=pad, mode='circular'))

对应的输出为:

xtensor([[[[0., 1., 2.], [3., 4., 5.], [6., 7., 8.]]]])F.pad(x, pad=pad, mode='constant', value=0)tensor([[[[0., 0., 0., 0., 0., 0., 0.], [0., 0., 0., 0., 0., 0., 0.], [0., 0., 0., 1., 2., 0., 0.], [0., 0., 3., 4., 5., 0., 0.], [0., 0., 6., 7., 8., 0., 0.], [0., 0., 0., 0., 0., 0., 0.], [0., 0., 0., 0., 0., 0., 0.]]]])F.pad(x, pad=pad, mode='replicate')tensor([[[[0., 0., 0., 1., 2., 2., 2.], [0., 0., 0., 1., 2., 2., 2.], [0., 0., 0., 1., 2., 2., 2.], [3., 3., 3., 4., 5., 5., 5.], [6., 6., 6., 7., 8., 8., 8.], [6., 6., 6., 7., 8., 8., 8.], [6., 6., 6., 7., 8., 8., 8.]]]])F.pad(x, pad=pad, mode='reflect')tensor([[[[8., 7., 6., 7., 8., 7., 6.], [5., 4., 3., 4., 5., 4., 3.], [2., 1., 0., 1., 2., 1., 0.], [5., 4., 3., 4., 5., 4., 3.], [8., 7., 6., 7., 8., 7., 6.], [5., 4., 3., 4., 5., 4., 3.], [2., 1., 0., 1., 2., 1., 0.]]]])F.pad(x, pad=pad, mode='circular')tensor([[[[4., 5., 3., 4., 5., 3., 4.], [7., 8., 6., 7., 8., 6., 7.], [1., 2., 0., 1., 2., 0., 1.], [4., 5., 3., 4., 5., 3., 4.], [7., 8., 6., 7., 8., 6., 7.], [1., 2., 0., 1., 2., 0., 1.], [4., 5., 3., 4., 5., 3., 4.]]]])可能会遇到的报错

常见的错误主要是因为padding的数量超过了对应模式的要求。

对于constant和replicate对于padding并没有限制。

但是另外两种模式replicate和circular就有要求了。

RuntimeError: Argument #4: Padding size should be less than the corresponding input dimension, but got: padding (3, 3) at dimension 3 of input 4

这发生在reflect模式中,padding的数量必须小于对应维度的大小。

import torchimport torch.nn.functional as Fpad = [3, 3, 3, 3]x = torch.arange(9, dtype=torch.float32).reshape(1, 1, 3, 3)print("F.pad(x, pad=pad, mode='reflect')")print(F.pad(x, pad=pad, mode='reflect'))"""F.pad(x, pad=pad, mode='reflect')Traceback (most recent call last): File "e:/Coding/PythonTools/TorchPadding/main.py", line 20, in <module> print(F.pad(x, pad=pad, mode='reflect')) File "D:\Programming\Python\envs\pt1102\lib\site-packages\torch\nn\functional.py", line 4189, in _pad return torch._C._nn.reflection_pad2d(input, pad)RuntimeError: Argument #4: Padding size should be less than the corresponding input dimension, but got: padding (3, 3) at dimension 3 of input 4"""AssertionError: Padding value causes wrapping around more than once.

这发生在circular模式中,padding的数量不得超出原始tensor对应维度的大小。

import torchimport torch.nn.functional as Fpad = [4, 4, 4, 4]x = torch.arange(9, dtype=torch.float32).reshape(1, 1, 3, 3)print("F.pad(x, pad=pad, mode='circular')")print(F.pad(x, pad=pad, mode='circular'))"""F.pad(x, pad=pad, mode='circular')Traceback (most recent call last): File "e:/Coding/PythonTools/TorchPadding/main.py", line 17, in <module> print(F.pad(x, pad=pad, mode='circular')) File "D:\Programming\Python\envs\pt1102\lib\site-packages\torch\nn\functional.py", line 4193, in _pad return _pad_circular(input, pad) File "D:\Programming\Python\envs\pt1102\lib\site-packages\torch\nn\functional.py", line 4585, in _pad_circular assert padding[-(idx * 2 + 1)] <= size, "Padding value causes wrapping around more than once."AssertionError: Padding value causes wrapping around more than once."""
本文链接地址:https://www.jiuchutong.com/zhishi/288989.html 转载请保留说明!

上一篇:js如何把时间戳转化为日期(js怎么把时间戳转为日期yyyy-mm-dd)

下一篇:触屏不灵敏怎么办(触屏不灵敏怎么调整oppo)

  • 小米平板5pro有电脑模式吗(小米平板5pro有红外线功能吗)

    小米平板5pro有电脑模式吗(小米平板5pro有红外线功能吗)

  • 苹果11能开90帧吗(苹果11可以开90帧)

    苹果11能开90帧吗(苹果11可以开90帧)

  • 正版win10密钥能用几次(window10正版密钥多少钱)

    正版win10密钥能用几次(window10正版密钥多少钱)

  • 手机怎么设置倒计时天数(手机怎么设置倒计时拍照)

    手机怎么设置倒计时天数(手机怎么设置倒计时拍照)

  • 酷家乐和3dmax区别(酷家乐软件和3d max哪个稍好点)

    酷家乐和3dmax区别(酷家乐软件和3d max哪个稍好点)

  • oppo最小的音量还是大(opporeno最小的音量还是大)

    oppo最小的音量还是大(opporeno最小的音量还是大)

  • 拼多多5分钟回复率不能低于多少(拼多多5分钟回复)

    拼多多5分钟回复率不能低于多少(拼多多5分钟回复)

  • 一个人可以实名几个微信(一个人可以实名几个QQ)

    一个人可以实名几个微信(一个人可以实名几个QQ)

  • wps怎么求和快捷键(wpsoffice求和快捷键)

    wps怎么求和快捷键(wpsoffice求和快捷键)

  • 快手通过私信添加是什么意思(快手私信添加好友)

    快手通过私信添加是什么意思(快手私信添加好友)

  • 户户通有信号有质量有强度但无频道怎么办(户户通有信号不能看)

    户户通有信号有质量有强度但无频道怎么办(户户通有信号不能看)

  • 电信4g首选网络类型(电信4g首选网络是什么)

    电信4g首选网络类型(电信4g首选网络是什么)

  • 情侣空间网络繁忙是什么问题(情侣空间显示网络异常)

    情侣空间网络繁忙是什么问题(情侣空间显示网络异常)

  • 如何把多个视频剪辑成一个(如何把多个视频连起来播放)

    如何把多个视频剪辑成一个(如何把多个视频连起来播放)

  • 苹果8p摄像头部位发烫(苹果8p手机摄像头)

    苹果8p摄像头部位发烫(苹果8p手机摄像头)

  • 钉钉分屏会被检测到吗(钉钉分屏会不会发现)

    钉钉分屏会被检测到吗(钉钉分屏会不会发现)

  • 小米bn34是什么型号(bn36是小米什么手机)

    小米bn34是什么型号(bn36是小米什么手机)

  • 苹果原彩显示有什么用(苹果原彩显示有必要开吗)

    苹果原彩显示有什么用(苹果原彩显示有必要开吗)

  • 抖音可以查访客记录吗(抖音可以查访客记录的时间吗)

    抖音可以查访客记录吗(抖音可以查访客记录的时间吗)

  • qq自定义封面怎么 取消(qq自定义封面怎么取消或是删除)

    qq自定义封面怎么 取消(qq自定义封面怎么取消或是删除)

  • 图表标题怎么添加(图表标题怎么添加两条线)

    图表标题怎么添加(图表标题怎么添加两条线)

  • mac系统中如何切换全角半角?苹果电脑输入法全角半角切换快捷键介绍(mac系统如何切换大小写)

    mac系统中如何切换全角半角?苹果电脑输入法全角半角切换快捷键介绍(mac系统如何切换大小写)

  • Win11开启VBS功能将严重影响游戏体验 游戏帧率最多下降28%(vb win10)

    Win11开启VBS功能将严重影响游戏体验 游戏帧率最多下降28%(vb win10)

  • 华为鸿蒙系统怎么安装虫虫助手app?鸿蒙系统安装虫虫助手app详细步骤(华为鸿蒙系统怎么样)

    华为鸿蒙系统怎么安装虫虫助手app?鸿蒙系统安装虫虫助手app详细步骤(华为鸿蒙系统怎么样)

  • 预收款交税规定
  • 提供劳务代扣的发票
  • 个人所得税手续费返还要交企业所得税吗
  • 半成品可以计入成本吗
  • 视同销售收入是纳税调整项目吗
  • 息税前利润变动率
  • 定期定额纳税申报表应税项应填哪个数
  • 一般纳税人购买并销售免税货物所发生的运输费用
  • 供热企业不得抵扣的进项计算
  • 从银行取现回单怎么取
  • 自然灾害造成库存商品毁损
  • 材料存货的期末计量有何特点
  • 原材料入库单运费要怎么计入?
  • 销售安装门窗增值税
  • 甲供材的范围
  • 物业公司税务风险
  • 企业向员工集资利息标准
  • 附加税减半征收计提和缴纳的会计分录
  • 城市垃圾处置费计入会计什么科目
  • 出售报废电脑要交什么税
  • 建筑业月末账务处理
  • 企业购买理财产品的会计分录
  • 小规模纳税人一个月能开多少税票
  • 应收款收不回账务处理
  • 小规模普通发票可以抵扣吗
  • mac app store一直转圈圈
  • 两免三减半条件
  • 什么叫php
  • PHP:pg_free_result()的用法_PostgreSQL函数
  • 递延所得税资产是什么意思
  • 长期借款利息和短期借款利息都应计入财务费用
  • Linux系统怎么配置IP
  • 携程境外电话客服人工电话
  • 增值税及附加税是什么意思
  • 俄勒冈zip
  • 工业会计和商业会计有什么区别
  • 留抵税额是认证过的发票吗
  • 短期借款利息有可能资本化处理,也可能费用化处理
  • 会计损益类科目核算
  • 研发费用加计扣除2022政策
  • 小规模纳税人免增值税的账务处理
  • discuz怎么使用
  • 营改增分录
  • mongodb exception: $concat only supports strings, not NumberInt32解决办法
  • 纳税人提供不动产经营租赁服务增值税征收管理暂行办法
  • 金税四期上线后对个人的影响
  • 飞机票抵扣进项税怎么填附表二
  • 成品油发票的六个问答
  • 报表与账不符情况说明
  • 子公司注销母公司长投账务处理
  • 技术支持费用属于什么费用
  • 产品的销售费用计入
  • 酒店房间消耗品成本
  • 企业应收账款的事前管理包括
  • 流动资产周转天数下降说明什么
  • excel日记账系统的设置
  • 修改mysql配置的两种方法
  • sqlserver数据库脚本
  • sql判断字符串是否为日期
  • linux系统中cron命令
  • 如何win8.1升级win10正式版
  • 如何修改windows注册表
  • 添加到右键快捷方式
  • win7系统怎么给C盘扩容
  • centos6.5关闭休眠
  • Win10预览版怎么变回正式版
  • linux的run目录放什么文件
  • win10计算机管理器
  • win10周年版
  • linux拉起进程
  • 在linux系统中拥有
  • c#多线程应用
  • unity 3d资源
  • win10文件类型选项
  • jquery Deferred 快速解决异步回调的问题
  • shape form的区别
  • 抱歉,初始化安卓设置时发生了问题
  • 人事科负责人是否必须是党员?
  • 个人限购
  • 上期留底税额怎么查
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设