본 게시글은 해당 링크를 참고하여 작성된 게시글입니다. Multi GPUs를 사용하여 Model을 학습시키고 Weights을 저장하면 모든 Parameter의 Key값에 "module."이 붙은채로 저장됩니다. 그런데, 이렇게 되면 Model의 멤버 변수(self.*)를 클래스 외부에서 접근할때 코딩 시 객체명.* 으로 접근하지 못하고 객체명.module.*과 같이 "module"을 붙여주어야 접근이 가능해집니다. 이렇게 되면, 코드를 작성할때 항상 module의 존재를 신경써주어야 합니다. 문제를 파악해봅시다. module이 붙는 이유는 Model을 병렬화 시켰기 때문이고, Model을 병렬화 시켰던 이유는 Load하고자하는 Weights의 Key값에 'module.'이 붙었기 때문입니다. 해결 방법은..
import torch import torch.nn as nn import torchvision.models as models class CNN(nn.Module): def __init__(self, ): super(CNN, self).__init__() self.backbone = models.resnet18(pretrained=True) for p in self.backbone.parameters(): p.requires_grad = True self.fc = nn.Linear(512, 2) def forward(self, x): x = self.backbone.conv1(x) x = self.backbone.bn1(x) x = self.backbone.relu(x) x = self.backbone...
- Total
- Today
- Yesterday
- 문제집
- C++ Deploy
- ㅂ
- 백준 11053
- 파이참
- LCA
- 자료구조
- 위상 정렬 알고리즘
- 단축키
- 백준 1766
- 이분탐색
- MOT
- 순열
- 백준 11437
- 백준
- Lowest Common Ancestor
- 인공지능을 위한 선형대수
- 조합
- 백트래킹
- cosine
- 가장 긴 증가하는 부분 수열
- FairMOT
- PyCharm
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |