KalelPark's LAB

[ERROR] "DataParallel" object no attribute Module 본문

Python/ERROR

[ERROR] "DataParallel" object no attribute Module

kalelpark 2022. 11. 30. 04:54

ERROR 명 :

AttributeError: 'DataParallel' object has no attribute 'classifier_concat'      

optimizer = optim.SGD([
        {'params' : model.classifier_concat.parameters(), 'lr' : 0.002},
        {'params' : model.conv_block1.parameters(), 'lr' : 0.002},
        {'params' : model.classifier1.parameters(), 'lr' : 0.002},
        {'params' : model.conv_block2.parameters(), 'lr' : 0.002},
        {'params' : model.classifier2.parameters(), 'lr' : 0.002},
        {'params' : model.conv_block3.parameters(), 'lr' : 0.002},
        {'params' : model.classifier3.parameters(), 'lr' : 0.002},
        {'params' : model.features.parameters(), 'lr' : 0.0002},
    ],  momentum = args.momentum, weight_decay = args.weight_decay)

Error가 발생한 이유는, PMG 논문을 구현하던 중, 발생하였다.

ResNet기반의 feature extractor와 PMG방식의 backbone을 엮고,

각각의 layer에 learning_rate을 finetunning하고자, 할 때 발생한 것이다.

Solution:

torch.nn.Module은 다른 모듈을 포함할 수 있고, 트리 구조를 형성하는 것이 가능하다. 이때, nn.Module을 상속받아,

기본적인 기능들을 사용할 수 있게, 엮는 것이기에, .module로 접근을 해야합니다.

 

아래와 같이, 코드에 .module을 추가하면, 정상적으로 실행됩니다.

optimizer = optim.SGD([
        {'params' : model.module.classifier_concat.parameters(), 'lr' : 0.002},
        {'params' : model.module.conv_block1.parameters(), 'lr' : 0.002},
        {'params' : model.module.classifier1.parameters(), 'lr' : 0.002},
        {'params' : model.module.conv_block2.parameters(), 'lr' : 0.002},
        {'params' : model.module.classifier2.parameters(), 'lr' : 0.002},
        {'params' : model.module.conv_block3.parameters(), 'lr' : 0.002},
        {'params' : model.module.classifier3.parameters(), 'lr' : 0.002},
        {'params' : model.module.features.parameters(), 'lr' : 0.0002},
    ],  momentum = args.momentum, weight_decay = args.weight_decay)

Author's GitHub

https://github.com/kalelpark

 

kalelpark - Overview

kalelpark has 12 repositories available. Follow their code on GitHub.

github.com

 

Comments