多参数时Torchsummary的使用方法

概述

  • Torchsummary是深度学习中常用的一款用来描述网络结构和各层参数的工具。在构建网络模型的时候,我们可以通过它来检查网络模型中的各项参数是否正确,进一步,是否能够给出正确维度的输出信息。
  • 对于网络模型的输入信息来说,除了传统的单一输入,还有多输入的网络模型。在多个输入时,使用torchsummary就会出现报错信息: TypeError: can’t multiply sequence by non-int of type ‘tuple’
  • 本案例使用的版本Torchsummary=1.5.1
  • 参考:
    1. https://github.com/sksq96/pytorch-summary/issues/90
    2. https://blog.csdn.net/qq_43733107/article/details/126508616

问题

根据报错信息,可以定位到报错的代码在torchsummary/torchsummary.py的Line 100:

total_input_size = abs(np.prod(input_size) * batch_size * 4. / (1024 ** 2.))

其中的input_size就是输入信息的维度,如常见的图像信息:(3, 64, 64)。而当多输入的时候,无法直接通过np.prod实现参数的相乘。

解决方法

方法一

total_input_size = abs(np.prod(sum((input_size),())) * batch_size * 4. / (1024 ** 2.))

方法二

total_input_size = abs(np.sum([np.prod(in_tuple) for in_tuple in input_size]) * batch_size * 4. / (1024 ** 2.))

将原代码注释后,任选上述两种方法之一都能实现功能。从代码中也能看到,一个是先加后乘,另一个是遍历乘法运算之后累加。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值