torch.nn.functional.pad(Expected a value of type ‘float‘ for argument ‘value‘ but instead foundtype)

本文详细介绍了PyTorch中的torch.nn.functional.pad函数,包括其参数用法和不同维度下的填充方式。同时,针对在使用过程中可能出现的`value`类型错误和`pad`类型错误进行了分析,解释了原因并提供了解决方案。文章提醒开发者要注意随着PyTorch版本更新,函数的使用方式可能发生变化,避免直接复制未经验证的代码。
摘要由CSDN通过智能技术生成

1、torch.nn.functional.pad()

  • torch.nn.functional.pad是PyTorch内置的矩阵填充函数

  • 官方地址:torch.nn.functional.pad(input, pad, mode=‘constant’, value=None) → Tensor

  • torch.nn.functional.pad( input , pad , mode = ‘constant’ , value = None )

    input:需要进行填充的Tensor数据
    pad:进行pad的元组(注意这里版本变了以后建议用列表类型),元组中元素个数小于等于input维度的2倍。如:input是2维的,则pad可以最多有4个元素;input是5维的,pad可以最多有10个元素。

     pad类型:
     1.四维Tensor:传入四元素tuple(pad_l, pad_r, pad_t, pad_b),
     指的是(左填充,右填充,上填充,下填充),其数值代表填充次数
     2.六维Tensor:传入六元素tuple(pleft, pright, ptop, pbottom, pfront, pback),
     指的是(左填充,右填充,上填充,下填充,前填充,后填充),其数值代表填充次数
    

    mode:‘constant’, ‘reflect’, ‘replicate’ 或 ‘circular’,默认 ‘constant’。
    value:填充的填充值,在"contant"模式下默认填充0,mode=“reflect” or "replicate"时没有 value参数。

  • 代码示例
    代码例子点这里(这个人的例子做得很棒,可以看看是怎么进行填充的)

2、Expected a value of type ‘float’ for argument ‘value’ but instead foundtype

运行代码的时候可能出现value的问题,根据官方文档看到这里应该是float类型,改成float类型即可(如我们value=0,改成value=0.0)。

也可能出现List而不是Tuple的问题(如我们的pad=(1, 0, 0, 0),改成pad=[1, 0, 0, 0]即可)。

为啥会有这两个问题的出现?
其实我在做实验时copy了网上的代码,没有去细看pad函数和pytorch,以至于这俩问题都出现了。
那别人怎么会把错误代码上传?
我猜测被我copy同学那会的pad函数是Tuple的pad和int的value,现在pytorch版本更新了,因此这个函数也随之发生改变了。(我的pytorch版本:1.10.0)

综上有:被我copy代码的同学年纪应该比我大哈哈哈哈!!!

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值