강의

멘토링

로드맵

Inflearn brand logo image

인프런 커뮤니티 질문&답변

권영건님의 프로필 이미지
권영건

작성한 질문수

수학 없이 시작하는 인공지능 첫걸음: 기초부터 최신 트렌드까지

11강. (실습) 간단한 딥러닝 모델로 만들어보는 의류 분류기

실습 중 에러발생 gt, pred = test()

작성

·

30

0

 회사 정책상 Google Driver 접근이 되지 않습니다.

Visual Studio Code에서 11강_FashionMNIST.ipynb 를 따라하고 있는데,

gt, pred = test('c:/content/drive/MyDrive/inflearn/code/checkpoint/FashoinMNIST-FCN_best_model.pt')

이 부분에서 에러가 발생합니다.

(파일은 위 위치에 저장되도록 해 놓았고, 파일이 있는 것 확인했습니다.)

UnpicklingError Traceback (most recent call last)

 

(1) In PyTorch 2.6, we changed the default value of the weights_only argument in torch.load from False to True. Re-running torch.load with weights_only set to False will likely succeed, but it can result in arbitrary code execution. Do it only if you got the file from a trusted source. (2) Alternatively, to load with weights_only=True please check the recommended steps in the following error message. WeightsUnpickler error: Unsupported global: GLOBAL main.FCNet was not an allowed global by default. Please use torch.serialization.add_safe_globals([__main__.FCNet]) or the torch.serialization.safe_globals([__main__.FCNet]) context manager to allowlist this global if you trust this class/function.

강의내용과 다른 것이 없어 보이는데, 잘 안되는군요.

답변 1

0

안녕하세요, 인프런 AI 인턴입니다.

권영건님, 주신 코드에서 발생한 UnpicklingError는 PyTorch에서 파이썬 객체를 역직렬화할 때 발생하는 문제입니다. 특히 PyTorch 2.6 버전에서 torch.loadweights_only 기본 값이 True로 변경되면서, 역직렬화가 제한되며 해당 오류가 나타날 수 있습니다.

여기서 몇 가지 시도해볼 수 있는 해결 방법을 제안드립니다:

  1. trusted source 사용:

    • torch.load를 사용할 때 weights_only=False로 설정하여 실행해 보세요. 이 방법은 보안상 주의가 필요하며, 파일이 신뢰할 수 있는 소스에서 온 경우에만 사용하는 것이 좋습니다.
    gt, pred = test('c:/content/drive/MyDrive/inflearn/code/checkpoint/FashoinMNIST-FCN_best_model.pt', weights_only=False)
    
  2. safe_globals 설정:

    • 오류 메시지에서 제안한 대로 torch.serialization.add_safe_globals([__main__.FCNet]) 등을 사용하여, 신뢰할 수 있는 클래스를 허용 목록에 추가하는 방법입니다. 이 방법은 해당 클래스가 안전하다고 신뢰할 수 있을 때만 사용하시기 바랍니다.
    import torch
    
    # FCNet 클래스를 허용 목록에 추가
    torch.serialization.add_safe_globals([__main__.FCNet])
    
    # 모델 로드
    gt, pred = test('c:/content/drive/MyDrive/inflearn/code/checkpoint/FashoinMNIST-FCN_best_model.pt')
    
  3. 장기적인 해결책:

    • 코드를 PyTorch 2.6 이전 버전으로 되돌리는 것도 하나의 방법입니다. 그러나 이는 권장되지 않는 방법이며, 가능한 최신 버전을 사용하는 것이 좋습니다.

이렇게 시도해 보시고 문제가 해결되지 않으면, 다른 문제가 있는지 추가적으로 코드 전반을 확인해 보는 것도 좋습니다.

추가적인 도움이나 비슷한 오류가 계속 발생한다면, 인프런 FAQ나 우측 하단의 ‘문의하기’ 기능을 통해 기술 지원을 요청하실 수도 있습니다.

감사합니다!

권영건님의 프로필 이미지
권영건

작성한 질문수

질문하기