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

  • 苹果手机如何整理通讯录(苹果手机如何整合照片)

    苹果手机如何整理通讯录(苹果手机如何整合照片)

  • vivox70pro+怎么设置双击锁屏(vivox70pro怎么设置来电闪光灯)

    vivox70pro+怎么设置双击锁屏(vivox70pro怎么设置来电闪光灯)

  • 苹果怎么拍猪头(苹果怎么拍猪头照)

    苹果怎么拍猪头(苹果怎么拍猪头照)

  • b站app字体大小可以设置吗(b站新版本字体太小)

    b站app字体大小可以设置吗(b站新版本字体太小)

  • 三星s9截屏快捷键是什么(三星s9手机截图怎么截)

    三星s9截屏快捷键是什么(三星s9手机截图怎么截)

  • iphone6splus卡顿严重(iphone6plus很卡)

    iphone6splus卡顿严重(iphone6plus很卡)

  • 音量键自动加怎么解决(音量键自动加音量是怎么回事)

    音量键自动加怎么解决(音量键自动加音量是怎么回事)

  • 抖音直播播放电视剧是怎么做到的(抖音直播播放电影怎么弄)

    抖音直播播放电视剧是怎么做到的(抖音直播播放电影怎么弄)

  • 小米6插u盘没反应(小米6插u盘没反应怎么办)

    小米6插u盘没反应(小米6插u盘没反应怎么办)

  • qq好友拉群自动同意怎么关闭(qq拉群自动同意怎么办)

    qq好友拉群自动同意怎么关闭(qq拉群自动同意怎么办)

  • vivos5充电速度(vivos5充电多少分钟充满电)

    vivos5充电速度(vivos5充电多少分钟充满电)

  • wps切换窗口快捷键(wps切换窗口快捷键设置)

    wps切换窗口快捷键(wps切换窗口快捷键设置)

  • 竞品信息指的是什么(竞品信息收集包括哪些内容)

    竞品信息指的是什么(竞品信息收集包括哪些内容)

  • 超清视效怎么用(什么叫超清视效)

    超清视效怎么用(什么叫超清视效)

  • 如何制作抖音短视频(如何制作抖音短视频照片)

    如何制作抖音短视频(如何制作抖音短视频照片)

  • 密码不能包含空格是什么意思(什么叫密码不能包含空格)

    密码不能包含空格是什么意思(什么叫密码不能包含空格)

  • 如何清除2345流氓主页(怎么彻底清除2345流氓软件)

    如何清除2345流氓主页(怎么彻底清除2345流氓软件)

  • 怎么看cad图的比例(怎么看cad图的比例是多少)

    怎么看cad图的比例(怎么看cad图的比例是多少)

  • 爱奇艺怎么换界面(爱奇艺怎么换界面背景)

    爱奇艺怎么换界面(爱奇艺怎么换界面背景)

  • 潮信怎么删除好友(潮信登陆不了怎么办)

    潮信怎么删除好友(潮信登陆不了怎么办)

  • 电脑网速测试是什么,在哪里能够打开?(电脑自带网速测试)

    电脑网速测试是什么,在哪里能够打开?(电脑自带网速测试)

  • 双重差分法(DID):标准化流程和stata代码实现(双重差分法(DID))

    双重差分法(DID):标准化流程和stata代码实现(双重差分法(DID))

  • 手把手教你训练一个VAE生成模型一生成手写数字(你知道怎么训练)

    手把手教你训练一个VAE生成模型一生成手写数字(你知道怎么训练)

  • vue中的provide/inject你知道吗(vue2、vue3)?(vue中的路由参数如何获取)

    vue中的provide/inject你知道吗(vue2、vue3)?(vue中的路由参数如何获取)

  • DedeCms分类信息联动筛选,省级与地市分开联动(分类信息有哪些网站)

    DedeCms分类信息联动筛选,省级与地市分开联动(分类信息有哪些网站)

  • 分公司开专票需要缴税
  • 油补是福利费还是工资
  • 金税盘费服务费记入什么科目
  • 销售软件怎么做账
  • 已上传的红字发票怎么打印
  • 暂估工资成本
  • 可以税前扣除的商业健康保险有哪些
  • 未发货先开票怎么结转成本
  • 公司承租厂房装修协议
  • 买卖汇票是什么意思
  • 库存生产用钢材属于什么会计科目类别
  • 不动产在建工程使用的外购货物
  • 报销发票财务一旦作废报销人可以收回吗?
  • 离线开票时间超限怎么办 发票都已经报送
  • 甲供工程会计分录
  • 企业取得的哪些成果
  • 以库存抵债的账务处理
  • 个人承包公司的经营所得怎么算
  • 资产评估溢价部分如何处理?
  • 企业购买汽车需要缴纳什么税
  • 网上代开专票 附加税在哪看
  • 金融负债包括哪几项
  • 专用发票红字发票
  • 如何找回windows密钥
  • 政府补助收入的开支怎么做账
  • 最新cpu天梯表
  • 代垫运费会计分录怎么写
  • 成立公司必要性
  • 民间非营利组织会计制度及操作实务
  • 2017年新准则下,收入确认的金额应是
  • php 设计模式 鸟哥
  • 专项资金下达期限
  • 房产证办理流程图
  • win11任务管理器卡死没响应
  • JavaScript之Ajax-axios表单提交
  • 自学黑客技术入门教程
  • node.js安装步骤
  • _ html
  • openai发布企业版
  • mkv视频制作
  • bash的主要功能
  • 研发费用加计扣除75%还是100%
  • 赔付支出计算公式
  • 学电脑的好网站
  • 自然人扣缴系统怎么申报个税
  • 税务登记是需要原件还是复印件
  • 公司车辆缴纳车船税
  • 运输公司赔偿账务处理
  • 利息收入如何开票
  • 月末结转后应交税费应交增值税一般无余额
  • 装修公司开劳务费怎么选择税控编码
  • 股东每月分红合理吗?
  • mysql三层架构
  • sql server触发器的编写与使用
  • centos7怎么配置yum源
  • windows查找命令
  • win8无法安装其它软件
  • WIN10如何设置电脑自动锁屏
  • mac系统删除系统软件
  • win7如何彻底删除软件
  • Qoeloader.exe - Qoeloader是什么进程 有什么用
  • linux如何修改账户名
  • win10周年版
  • cocos creator截图
  • cocos怎么用
  • unity3d 多线程
  • unity3d怎么用
  • jquery动态添加
  • Python定时器实例代码
  • Node.js中的什么模块是用于处理文件和目录的
  • node定时任务框架
  • Unity3D事件函数的执行顺序
  • string剪切
  • 浏览器app测试要点
  • 安卓抽象类
  • 下拉列表框模糊匹配
  • jquery常用操作
  • 国家税务总局安徽省税务局公告
  • 公司如何制定制度
  • 山西税务体检医院
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设