【问题标题】:How to discover torch model name from the model itself?如何从模型本身发现火炬模型名称?
【发布时间】:2020-01-23 09:59:30
【问题描述】:

我正在以这种方式创建一个内置的火炬模型:

m = torchvision.models.resnet50()

然后我想使用变量 m 发现模型的名称(在本例中为 resnet50)。 当打电话给type(m) 我得到torchvision.models.resnet.ResNet 这几乎是答案,但深度对我来说也很重要。我可以尝试迭代m.modules(以这种方式有 151 个模块长)并推断 resblocks 深度,但这在其他模型(如 inception、alexnet 等)中的工作方式完全不同。

【问题讨论】:

  • 答案ResNet 还不够“50”吗?
  • @Shai 没错
  • 由于不同 ResNet 模型之间的唯一区别在于它们的 layers 配置,因此您的解决方案很可能会专门针对 ResNet 量身定制。
  • @Shai 没错。所以这就是为什么我要求一种更通用的方法来做到这一点,所以如果我以后将我的模型更改为另一种模型,我将获得全名而无需进一步计算层
  • 你可以在上面写包装模型并添加名称属性吗?

标签: python pytorch torchvision


【解决方案1】:

如果我们查看代码here,ResNet50 就是一个函数的名称。

所以唯一的方法是上面 Umang Gupta 建议的方法:编写一个 Wrapper 模型

model = torchvision.models.resnet50()
model.name = 'Resnet-50'

【讨论】:

    猜你喜欢
    • 2022-08-04
    • 1970-01-01
    • 2020-09-21
    • 2017-09-06
    • 2021-06-18
    • 2017-07-20
    • 2021-07-04
    • 1970-01-01
    • 2018-07-28
    相关资源
    最近更新 更多