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

  • 苹果手机怎么弄卡通人头(苹果手机怎么弄空调遥控?)

    苹果手机怎么弄卡通人头(苹果手机怎么弄空调遥控?)

  • realmex50pro是什么芯片呢(realme x50 pro 是什么牌手机)

    realmex50pro是什么芯片呢(realme x50 pro 是什么牌手机)

  • 小米10没信号(小米10没信号后不能自己恢复)

    小米10没信号(小米10没信号后不能自己恢复)

  • 抖音直播放电影可以吗(抖音直播放电影怎么赚钱)

    抖音直播放电影可以吗(抖音直播放电影怎么赚钱)

  • 电脑开一晚上会有什么事吗(电脑开一晚上会烧屏吗)

    电脑开一晚上会有什么事吗(电脑开一晚上会烧屏吗)

  • 手机膜1和2怎么贴(手机膜12怎么贴)

    手机膜1和2怎么贴(手机膜12怎么贴)

  • 华为手机发布时间(华为手机发布时间排列2023)

    华为手机发布时间(华为手机发布时间排列2023)

  • 低蓝光模式需要开启吗(低蓝光模式需要开吗)

    低蓝光模式需要开启吗(低蓝光模式需要开吗)

  • 苹果手机自动挂断怎么回事(苹果手机自动挂机是怎么回事)

    苹果手机自动挂断怎么回事(苹果手机自动挂机是怎么回事)

  • ipad6是什么处理器(ipad6用的什么处理器)

    ipad6是什么处理器(ipad6用的什么处理器)

  • 抖音pk输了金币还有吗(抖音pk输了金币会掉吗)

    抖音pk输了金币还有吗(抖音pk输了金币会掉吗)

  • win10突然软件都打不开(win10软件都打不开怎么回事)

    win10突然软件都打不开(win10软件都打不开怎么回事)

  • date是什么意思

    date是什么意思

  • iPhone11怎么激活(iphone11怎么激活卡二)

    iPhone11怎么激活(iphone11怎么激活卡二)

  • 微信读书币会清零吗(微信读书书币使用)

    微信读书币会清零吗(微信读书书币使用)

  • 华为4手环发布时间(华为手环发布时间轴)

    华为4手环发布时间(华为手环发布时间轴)

  • 如何打印手机里的照片(如何打印手机里的电子发票)

    如何打印手机里的照片(如何打印手机里的电子发票)

  • usb dac怎么用(usb-dac)

    usb dac怎么用(usb-dac)

  • 手持光谱仪什么用(手持光谱仪一般多少钱)

    手持光谱仪什么用(手持光谱仪一般多少钱)

  • 苹果11是双层主板嘛(苹果11是双层主板发热严重吗)

    苹果11是双层主板嘛(苹果11是双层主板发热严重吗)

  • 苹果8p功能介绍与玩法(苹果8p功能介绍视频)

    苹果8p功能介绍与玩法(苹果8p功能介绍视频)

  • qq群怎么@全体成员(qq群如何@全体)

    qq群怎么@全体成员(qq群如何@全体)

  • MAC系统快速启用缩放文件夹与Safari应用的方法(苹果电脑快速启动键是哪个)

    MAC系统快速启用缩放文件夹与Safari应用的方法(苹果电脑快速启动键是哪个)

  • 机器视觉系列5:C++部署pytorch模型onnxruntime(机器视觉 machine)

    机器视觉系列5:C++部署pytorch模型onnxruntime(机器视觉 machine)

  • 织梦根据栏目不同调用不同模板的方法(织梦设置的关键词看不到)

    织梦根据栏目不同调用不同模板的方法(织梦设置的关键词看不到)

  • 增值税专用发票有效期是多长时间
  • 进项税加计抵扣政策
  • 增值税进项税额加计抵减会计处理
  • 税金计提多了,交少了怎么处理
  • 营改增税负分析测算明细表一般由谁填写
  • 养老基金利率多少
  • 企业缴纳的财产保险费会计分录
  • 用现金购买的股票
  • 项目规划设计费用取费标准
  • 存货卖出亏损会怎么样
  • 养老保险缴纳比例是固定的吗
  • 施工企业结算金额怎么算
  • 超市商品打折怎么算出来
  • 出口退税账务处理例题
  • 企业购买黄金如何处理
  • 国家税务金税四期
  • 累计已确认收入极可能不会发生重大转回
  • 分公司固定资产转入总公司的分录怎么做?
  • 所得税 季报
  • 处置其他权益工具投资会影响当期损益吗
  • 出口的增值税到底怎么算的
  • 以前年度少计收入怎么办
  • 小规模纳税人季度超过30万怎么纳税
  • 公司年度财务报告怎么写
  • 跨年的工会经费怎么做分录
  • 其他现代服务包括哪些税目
  • 职工福利费的会计科目是什么
  • bios设置第一启动项Linux
  • 转账凭证摘要怎么写原材料的
  • window10下载cad2014
  • phpstudy的ftp
  • 企业接受股权投资概念政府基金
  • 无线路由器怎么连接
  • php获取扩展名的几种方法
  • php array_pop函数
  • php语言版本
  • nginx ss
  • 今日冬至有什么讲究吗
  • ai绘图素材
  • Chrome谷歌浏览器网页
  • ajax不刷新页面
  • vscode搭建vue开发环境
  • php数组怎么实现的
  • 软件开发增值税即征即退政策
  • 节日购买什么礼物发放职工
  • 房产税计入管理费用还是税金附加
  • 低值易耗品如何界定
  • 个体工商户税种及税率
  • 红字发票的数量乘以单价可以不等于含税金额吗
  • 信用减值损失与资产减值损失
  • 增值税专用发票抵扣期限
  • 资本公积怎么核算成本
  • 纳税检查企业多缴企业所得税如何处理
  • 职工教育经费还有什么经费
  • 固定资产计提完折旧残值怎么处理
  • 汇算清缴怎么申报
  • 免抵税额分录
  • 合同资产结转收入
  • 单位食堂油烟机多长时间清洗一次
  • 服务企业会计建账流程
  • sqlserver数据库合并方法
  • win10系统即将过期怎么办
  • win2003系统安装
  • 电脑死机是什么问题
  • 怎么清空mac用户数据
  • win 7怎么办
  • win8显示wifi关怎么办
  • node session
  • js两个函数互相调用
  • android抓取各种log的方法
  • 安卓工程如何正常启动
  • unity fixed update
  • 抛弃无情道剑尊后扶桑知我
  • javascript原型
  • 使用筷子就餐会不会传染乙肝病毒
  • 使用jQuery制作动画与特效及插件的应用
  • 购买服务合同模版
  • 南京税务登记查询官网
  • 税务申报网上申报
  • 北京税务局开票系统
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设