【问题标题】:Can you build a ResNet using the Pytorch Basic block alone? [duplicate]你能单独使用 Pytorch Basic 块构建 ResNet 吗? [复制]
【发布时间】:2021-06-25 22:18:57
【问题描述】:

我一直在阅读这篇文章:https://dhruvs.space/posts/understanding-resnets/,以了解 ResNet50 是如何构建的。

我见过有人单独使用 Basic 块来实现 ResNet50。喜欢这里:https://analyticsindiamag.com/hands-on-guide-to-implement-resnet50-in-pytorch-with-tpu/

但是,pytorch 使用 Bottleneck 块实现 ResNet50(与第二个链接不同但与上面的第一个链接相似)https://github.com/pytorch/vision/blob/master/torchvision/models/resnet.py 与文章中引用的不同。

你能单独使用 pytorch Basic 块构建 ResNet50 吗?

【问题讨论】:

    标签: machine-learning computer-vision pytorch resnet


    【解决方案1】:

    嗯,是的,你可以,但我认为你不应该或者你真的需要。

    名称ResNet50 表示它是一个具有 50 个加权层的 ResNet 模型。

    因此,从您附加的最后一个链接的this line 中,您应该已经看到您可以将Bottleneck 更改为BasicBlock

    但它只是ResNet34,因为BasicBlock 的层数少于Bottleneck,因此要获得实际的ResNet50,您需要再添加16 个层,即8 个BasicBlock,例如@987654330 @。

    您甚至可以更改其他阶段的数量,只要数字加起来为 24 即为Resnet50

    但这意味着您不能使用现有的预训练权重,除非您的数据与 Imagenet 一样大,否则迁移学习总是更好,即使您不冻结权重。

    【讨论】:

      猜你喜欢
      • 2020-07-04
      • 1970-01-01
      • 2016-07-02
      • 1970-01-01
      • 1970-01-01
      • 2023-01-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多