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

  • 浅谈微博营销专员应具备的条件(浅谈微博营销专业论文)

    浅谈微博营销专员应具备的条件(浅谈微博营销专业论文)

  • 微信添加好友方式在哪里设置(微信添加好友方式怎么看)

    微信添加好友方式在哪里设置(微信添加好友方式怎么看)

  • 一加7tpro什么时候上市

    一加7tpro什么时候上市

  • 微信朋友圈图片折叠怎么办(微信朋友圈图片点不开啥原因)

    微信朋友圈图片折叠怎么办(微信朋友圈图片点不开啥原因)

  • 座机怎么拨号(英国打国内座机怎么拨号)

    座机怎么拨号(英国打国内座机怎么拨号)

  • 爱奇艺网址是多少(爱奇艺的网站)

    爱奇艺网址是多少(爱奇艺的网站)

  • 充电宝可以给充电宝充电吗(充电宝可以给充电宝相互充电吗)

    充电宝可以给充电宝充电吗(充电宝可以给充电宝相互充电吗)

  • qq分享屏幕可以看见对方吗(qq分享屏幕可以看见对方的脸吗)

    qq分享屏幕可以看见对方吗(qq分享屏幕可以看见对方的脸吗)

  • 作业帮答主容易申请吗(作业帮答主难不难)

    作业帮答主容易申请吗(作业帮答主难不难)

  • 光盘有的电脑读不出来是为什么(电脑读光盘读不出来怎么办)

    光盘有的电脑读不出来是为什么(电脑读光盘读不出来怎么办)

  • 爱奇艺如何截屏(爱奇艺如何截屏视频片段播放)

    爱奇艺如何截屏(爱奇艺如何截屏视频片段播放)

  • 华为nova3怎么连拍照片(华为nova3怎么连接电脑)

    华为nova3怎么连拍照片(华为nova3怎么连接电脑)

  • 苹果x振动怎么设置(苹果x震动怎么设置强度)

    苹果x振动怎么设置(苹果x震动怎么设置强度)

  • 手机状态栏怎么设置(手机状态栏怎么设置流量显示?)

    手机状态栏怎么设置(手机状态栏怎么设置流量显示?)

  • 华为荣耀7x怎么插卡啊(华为荣耀7x怎么隐藏应用)

    华为荣耀7x怎么插卡啊(华为荣耀7x怎么隐藏应用)

  • 芒果tv怎么退出登入(芒果tv怎么退出其他设备)

    芒果tv怎么退出登入(芒果tv怎么退出其他设备)

  • 苹果xs max是苹果几代(苹果xs max是苹果12吗)

    苹果xs max是苹果几代(苹果xs max是苹果12吗)

  • 小米2s支持什么卡(小米2s能用吗)

    小米2s支持什么卡(小米2s能用吗)

  • 抖音拍摄的视频怎么剪辑(抖音拍摄的视频怎么调倍速)

    抖音拍摄的视频怎么剪辑(抖音拍摄的视频怎么调倍速)

  • 耕升显卡为什么便宜(最新的显卡型号)

    耕升显卡为什么便宜(最新的显卡型号)

  • 苹果xr双卡怎么装(苹果XR双卡怎么装)

    苹果xr双卡怎么装(苹果XR双卡怎么装)

  • 滴滴时长费是司机自己加吗(滴滴什么叫时长费)

    滴滴时长费是司机自己加吗(滴滴什么叫时长费)

  •  p30pro返回键怎么隐藏(p30pro操作返回技巧)

    p30pro返回键怎么隐藏(p30pro操作返回技巧)

  • 抖音道具不支持当前设备什么情况(抖音为啥道具不可用)

    抖音道具不支持当前设备什么情况(抖音为啥道具不可用)

  • qq创群在哪(qq在哪里创群)

    qq创群在哪(qq在哪里创群)

  • el-cascader数据渲染及回显至页面(以及踩坑历程+解决)(el-cascader数据渲染时不出现文字)

    el-cascader数据渲染及回显至页面(以及踩坑历程+解决)(el-cascader数据渲染时不出现文字)

  • 金融资产交易增值税
  • 金税盘服务费全额抵扣是什么意思
  • 安置残疾人税收优惠
  • 商誉要摊销和减值吗?
  • 资产负债表月报期末余额怎么填
  • 长期待摊费用可以转入固定资产吗
  • 购进石料再加工算自产吗
  • 现金支出的一般程序
  • 古董卖给公司
  • 预付了订金收到发票怎么做分录?
  • 灭草剂使用说明
  • 基金公司管理费收入怎么入账
  • 政府机构可以开对外营业的餐饮吗
  • 哪几种跨省邮寄发票是违法的?
  • 收到税局代增值税专用发票已作废的退款怎么做账
  • 职工教育法
  • 事业单位研发支出资本化
  • 挂靠公司代收入税金如何做分录?
  • 国税申报纳税调整项目怎么填的?
  • 自然人扣缴系统怎么删除企业
  • 应付账款转营业外收入需要什么条件
  • 专项应付款会计科目代码
  • 薪酬支出包括什么
  • Mac怎么禁用icloud
  • cpu风扇应该怎么调
  • php zip模块
  • linux grep显示行数
  • php做
  • vmware download
  • 材料成本差异贷方表示
  • win7旗舰版系统鼠标不能动了
  • 固定资产毁损应该填制什么凭证
  • 小规模纳税人补缴企业所得税分录
  • 一次补发工资怎么算
  • 微芯片技术
  • echarts地图tooltip
  • 初雪与最后的秋天的区别
  • 扣缴单位无有效的税费种认定信息
  • vue通过url访问单个页面
  • php输出mysql查询结果
  • vue内置指令实验总结
  • 如何利用数据有效性制作单元格菜单
  • 电子税务局购票员变更
  • 公司的银行账号是不是和个人账号不一样
  • 当月勾选认证可以在下月抵扣吗
  • 开红字信息表后的账务处理
  • 发现以前年度损益调整怎么记账
  • 帝国cms怎么用
  • mysql深度解析
  • 国家研发费用补助
  • 小规模公司的做账要求
  • 债权投资减值对股票影响
  • 跨月抵扣的发票能退回吗
  • 印花税记入哪个费用
  • 委外研发费用如何入账
  • 装饰公司财务工作内容
  • 免费赠送客户入群的文案
  • 质量有问题不给退怎么办
  • 小微企业免征增值税优惠
  • 管理费用的明细科目如何设置
  • Windows Server 2008的NPS策略应用
  • centos中如何查看ip地址
  • removed.exe - removed是什么进程 有什么用
  • Linux Kernel 4.10第5个候选版本RTM版发布 2月12日发布正式版
  • win10系统收不到wifi信号
  • linux删除一个非空子目录命令
  • 惠普笔记本的BIOS键
  • cocos2d游戏引擎
  • JavaScript不支持ie
  • expressjs中文
  • asp.net 4.8
  • Shell脚本中不同进制数据转换的例子(二进制、八进制、十六进制、base64)
  • inputchange
  • javascript框架的作用
  • python3 cookie
  • jquery formbuilder
  • 境外服务收入如何纳税
  • 公益性公墓免交税吗
  • 不予处理的法律依据
  • 房产税申报流程图
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设