位置: 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)

  • 2点淘宝客站运营出路(淘宝两点之间转运)

    2点淘宝客站运营出路(淘宝两点之间转运)

  • windows8系统(windows8 激活)

    windows8系统(windows8 激活)

  • 荣耀magic3至臻版支持人脸支付吗(荣耀magic3至臻版和magic5哪个好)

    荣耀magic3至臻版支持人脸支付吗(荣耀magic3至臻版和magic5哪个好)

  • 微信红包多久退回(微信红包多久退回去)

    微信红包多久退回(微信红包多久退回去)

  • vga dvi hdmi的区别(vga和hdmi和dvi哪个效果好)

    vga dvi hdmi的区别(vga和hdmi和dvi哪个效果好)

  • 苹果8是什么时候上市在中国(苹果8是什么时候发布的手机)

    苹果8是什么时候上市在中国(苹果8是什么时候发布的手机)

  • oppor9无故频繁重启(oppor9手机老是自动重启)

    oppor9无故频繁重启(oppor9手机老是自动重启)

  • v1732t是什么手机型号(v1731ca是什么型号的手机)

    v1732t是什么手机型号(v1731ca是什么型号的手机)

  • 小米9无缘无故重启(小米9突然自己关机怎么回事)

    小米9无缘无故重启(小米9突然自己关机怎么回事)

  • 微信共享位置能听到声音吗(微信共享位置能看到对方的详细地址吗)

    微信共享位置能听到声音吗(微信共享位置能看到对方的详细地址吗)

  • word怎么文字上标(word怎么文字上移)

    word怎么文字上标(word怎么文字上移)

  • 手机微信封号怎么解除(手机微信封号怎么回事)

    手机微信封号怎么解除(手机微信封号怎么回事)

  • 手机流量卡顿怎么办(手机流量卡顿怎么处理最好)

    手机流量卡顿怎么办(手机流量卡顿怎么处理最好)

  • 手机怎么安装微信(手机怎么安装微信电脑版)

    手机怎么安装微信(手机怎么安装微信电脑版)

  • iphonex相机ar怎么开(苹果ar照相)

    iphonex相机ar怎么开(苹果ar照相)

  • 抖音怎么设置青少年模式(抖音怎么设置青少年模式时间)

    抖音怎么设置青少年模式(抖音怎么设置青少年模式时间)

  • 天猫店铺会员怎么退出(天猫店铺会员怎么设置)

    天猫店铺会员怎么退出(天猫店铺会员怎么设置)

  • 电脑声卡可以连接手机吗(电脑声卡可以连接音箱吗)

    电脑声卡可以连接手机吗(电脑声卡可以连接音箱吗)

  • 探探必须开会员才能聊天吗(探探会员有必要开吗)

    探探必须开会员才能聊天吗(探探会员有必要开吗)

  • 小米卡丁车9和PRO区别(小米卡丁车pro21款)

    小米卡丁车9和PRO区别(小米卡丁车pro21款)

  • 抖音的长腿特效在哪里(抖音长腿特效没有了怎么找回)

    抖音的长腿特效在哪里(抖音长腿特效没有了怎么找回)

  • 抖音照片和视频怎么合在一起(抖音照片和视频哪个流量更快更多)

    抖音照片和视频怎么合在一起(抖音照片和视频哪个流量更快更多)

  • 苹果手机人脸识别不了是什么原因(苹果手机人脸识别怎么设置两个人)

    苹果手机人脸识别不了是什么原因(苹果手机人脸识别怎么设置两个人)

  • vue3【计算属性与监听-详】(vue使用计算属性)

    vue3【计算属性与监听-详】(vue使用计算属性)

  • Python中pdb设置断点(python设置断点)

    Python中pdb设置断点(python设置断点)

  • 设备租赁公司印花税怎么交
  • 决算报表与账不一致怎么调账
  • 施工劳务企业要交增值税吗
  • 个体工商户核定征收税率
  • 个人所得税申报错误如何更正申报
  • 税控盘减免税有时间限制吗?
  • 软件销售购销合同
  • 委托加工设备
  • 不开发票的收入如何申报纳税
  • 生产设备购买交付会计分录
  • 公司过桥贷款怎么贷
  • 计提房屋租赁费
  • 第二季度的利润表报错了,怎么重新报
  • 消费税什么时候用最高售价
  • 如何安装os x
  • Linux+Nginx+MySQL下配置论坛程序Discuz的基本教程
  • 公司有长期挂账的说法吗
  • Win11安装失败怎么办
  • 异地设立的仓库怎么处理
  • PHP:php_check_syntax()的用法_misc函数
  • 企业发生的利得和损失应计入所有者权益
  • 直接材料成本差异账户在平时登记贷方登记
  • 企业所得税季度预缴是什么意思
  • 财产清查两种制度
  • 现金流量表相关题目
  • 基于html的旅游网站设计源代码
  • vue3动态路由权限
  • $ajax请求
  • 换货和退货有什么区别
  • 专项资金怎么填表
  • css content \f041
  • day29--Java泛型02
  • 公司银行开户的费用怎么做账
  • 接受非货币性资产投资会计处理
  • 社保单位当月应缴月报查询
  • 公司注册完成以后需要做哪些事情
  • 开基本户一定要法人身份证吗
  • 小规模纳税人升级为一般纳税人
  • Linux sqlite3 基本命令
  • 单一窗口出口报关流程
  • 工资薪金与劳务报酬的区别有哪些
  • 已纳消费税扣除会计分录
  • 增值税税控系列是什么
  • 支付土地租金计入什么科目里面
  • 农产品如何进入批发市场
  • 新建厂房房产证办理流程
  • 新公司的注册
  • 支付宝电子发票怎么开
  • 预收账款转收入的条件
  • 消耗性生物资产与生产性生物资产的区别
  • 分公司第二季度总结报告
  • 甲方扣水电费施工方是否开票
  • 伤残就业补偿金记入什么科目
  • mysqladmin ping
  • sql语句的优化方式
  • xampp网页服务器配置文件名
  • windows内存诊断是干什么的
  • fedora系统安装教程
  • winpe安装步骤
  • 如何解决笔记本电脑温度过高 蓝屏
  • 虚拟光驱安装
  • 登录系统错误
  • Win10 Mobile 10572新增实用功能:未接电话会显示响铃的次数
  • 电脑xp系统如何
  • win10安装不了ie
  • 电脑显示无windows
  • Linux系统怎么设置中文输入法
  • cocos-2dx
  • js date类型
  • 谈一谈js消息机制的理解
  • jquery 鼠标
  • node.js开发实战
  • Unity uGui RawImage 渲染小地图
  • js数组的push方法
  • 国家税务总局司长
  • 航天信息人工电话
  • 安徽增值税普通发票税率1%
  • 广东省税务总局官网
  • 宝安区西乡税务所长
  • 税务发票定额
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设