본문 바로가기
딥러닝\머신러닝/에러 디버깅

[Pytorch] torch.hub.load를 사용 못하는 상황에서 로컬로 진행하기

by 인포메틱스 2023. 4. 28.
반응형

일하는 곳이 병원이다 보니 시발 폐쇄망에서 서버를 돌리고 있습니다.

 

이게 단점이 외부에 접속해서 뭔가 다운이 안되는 단점이 있습니다. 우회로 로컬컴에서 다운받고 서버로 옮기는 것은 가능합니다.

 

 이번에 SwinTransformer모델을 돌리게 되었는데, 제가 받은 코드에는 github에서 모델을 다운받아야 하는 코드였습니다. -> torch.hub.load 말입죠. 

 

당연히 폐쇄망이기 때문에 다운이 안되어서 이런저런 방안을 찾다가 해결책을 찾아 포스팅합니다.

 

코드에서는 다음과 같이 사용하더군요.

 

torch.hub.load('github의 모델','모델명',pretrained)

 

일단 SwinTransformer에서 모델을 사용하기 위해서 로컬컴퓨터에서 해당 github를 방문해줍니다.

https://github.com/SharanSMenon/swin-transformer-hub

 

GitHub - SharanSMenon/swin-transformer-hub: Torch Hub loader for Swin Transformer

Torch Hub loader for Swin Transformer. Contribute to SharanSMenon/swin-transformer-hub development by creating an account on GitHub.

github.com

 

clone 혹은 zip으로 다운받고 모델을 사용할거면 또 다운받아주시고

 

저는 모델을 사용할것이기 때문에 다운받아줬고,

https://github.com/SwinTransformer/storage/releases/download/v1.0.0/swin_tiny_patch4_window7_224.pth

 

서버로 옮겨줍니다.

 

그리고 모두 풀고 난뒤에 

 

풀고 난 곳이 /home/ 이라고 한다면 먼저 모델을 import시켜줘야하는데, 다음과 같이 진행합니다. 그렇게 되면 해당 폴더에 있는 py를 import 시킬수가 있습니다.

 

import sys
sys.path.insert(0, "/home/SharanSMenon_swin-transformer-hub_main/")

import swin

 

그리고 pretrained된 모델을 추가시켜주면 됩니다.

model = swin.SwinTransformer() # default config is swin_tiny_patch4_window7_224
state_dict = torch.load("./swin_tiny_patch4_window7_224.pth")["model"]
model.load_state_dict(state_dict)

 

그리고 쓰시면 됩니다!!

 

728x90
반응형

댓글