【深度学习】empty() received an invalid combination of arguments - got (tuple, dtype=NoneType, device=None

构建yoloV3的resblock时,python的一个小坑

在构建一个简单的卷积层时,出现如下的错误:
在这里插入图片描述
代码如下:

class resblock(nn.Module):
    def __init__(self,inputDims):
        super(resblock,self).__init__()
        self.inputChannels = inputDims
        self.middleChannels = int(inputDims/2)
        #报错行
        self.conv1 = nn.Conv2d(in_channels=inputDims,out_channels=inputDims/2,kernel_size=1,stride=1)
        self.bn1 = nn.BatchNorm2d(self.middleChannels)
        self.active1 = nn.LeakyReLU()
        self.conv3x3 = nn.Conv2d(in_channels=self.middleChannels,out_channels=inputDims,kernel_size=3,stride=1,padding=1)
        self.bn2 = nn.BatchNorm2d(inputDims)
        self.active2 = nn.LeakyReLU()

        self.shortcut = shortCut()
    def forward(self,x):
        y1 = self.active1(self.bn1(self.conv1(x)))
        y = self.active2(self.bn2(self.conv3x3(y1)))
        return self.shortcut(x,y)

产生的原因是因为在python3中两个整型相除得到的是浮点型,例如:4/2=2.0,而在构建卷积时的参数要求时整型

  • 8
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
### 回答1: 这个错误提示意思是传入 empty() 函数的参数组合不正确,期望的参数类型是整数元组,而你传进去的是一个元组、dtypedevice 都是 NoneType。正确的参数类型应该是 (整数元组, dtype, device) 或者 (整数元组, memory_format, dtype, layout)。 ### 回答2: 这个错误信息与 PyTorch 中的 empty() 函数有关,表示输入的参数类型不符合预期。empty() 是用来创建一个未初始化的张量(tensor)的函数,在创建时需要指定张量的大小、数据类型、存储布局等参数,以便计算机分配相应的内存空间。 根据错误信息,empty() 函数期望的参数类型为:一个整数元组(tuple of ints),或者是一个整数元组和特定的参数组合,如名称元组(tuple of names)、内存格式(memory_format)、数据类型(dtype)和存储布局(layout)等。 但是,实际传入的参数是一个元组(tuple),并且这个元组中包含了非空的数据类型(dtype)和设备(device)参数,这与 empty() 函数期望的参数类型不符。因此就出现了这个 TypeError 的错误。 为了解决这个问题,需要检查调用 empty() 函数时传入的参数,确保它们符合 empty() 函数的预期参数类型。可以尝试将传入的参数转换为函数期望的类型,或者重新组织参数的顺序,以匹配 empty() 函数声明中的参数顺序和类型。此外,可能需要检查输入数据的类型和形状,确保它们与 empty() 函数所需的张量大小相匹配。 ### 回答3: TypeError: empty()接收到了一个无效的参数组合-得到了(tupledtype = nonetypedevice = nonetype),但预期其中的一个是:* (int大小的元组,*,名称名称的元组,torch.memory_format记忆格式torch。 dtype dtype,torch。布局布局。 这个错误意味着您在调用PyTorch的empty()函数时提供了无效的参数组合。 empty()函数用于创建一个具有指定尺寸的空张量,但它需要一些必要的参数来完成这项工作。 根据错误消息,empty()函数期望一个整数大小的元组作为参数,该元组指定了您要创建的张量的形状。此外,函数还需要知道您要使用的数据类型和张量布局,这些信息可以通过指定dtype和layout参数来提供。最后,您可以选择提供一个torch.memory_format参数,以指定应如何组织内存。 因此,为了解决此错误,您应该检查您在调用empty()函数时提供的参数,并确保它们具有正确的类型和值。例如,要创建一个形状为(3,4)的空浮点张量,您可以执行以下操作: import torch my_tensor = torch.empty((3, 4), dtype=torch.float32) 在这里,我们提供了一个整数大小为(3,4)的元组,以指定我们要创建的张量的形状。我们还指定了数据类型为32位浮点数。根据需要,我们也可能需要指定一个布局,并选择一个适当的memory_format。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值