pytorchvision Import 에러 문의

torch 버전: 2.1.0
torchvision: 0.16.0
가상환경: python 3.8.18

에러 상황:
FastRCNNPredictor을 사용하기 위해 import시 FastRCNNPredictor을 import를 하지 못했다고 나옴

에러 지점:
from torchvision.models.detection import fasterrcnn_resnet50_fpn, FastRCNNPredictor

에러 메세지:
Exception has occurred: ImportError
cannot import name 'FastRCNNPredictor' from 'torchvision.models.detection' (C:\Users\sooon\anaconda3\envs\newenv\lib\site-packages\torchvision\models\detection_init_.py)
File "D:\Python_Test\GPURcnnStudy", line 5, in
from torchvision.models.detection import fasterrcnn_resnet50_fpn, FastRCNNPredictor
ImportError: cannot import name 'FastRCNNPredictor' from 'torchvision.models.detection' (C:\Users\sooon\anaconda3\envs\newenv\lib\site-packages\torchvision\models\detection_init_.py)

  • 아래 답변은 OpenAI의 GPT-3.5(ChatGPT) 모델로 자동 생성한 것으로, 정확하지 않을 수 있습니다.
  • 잘못된 답변을 보셨다면 댓글로 첨삭 지도 부탁드립니다. :sweat_smile:

안녕하세요! 질문 주셔서 감사합니다. 문제를 이해하고 정리해보겠습니다.

주어진 정보에 따르면, PyTorch 버전 1.2.0과 torchvision 버전 0.4.0을 사용하고 계시며, FastRCNNPredictor을 import하려고 할 때 ImportError가 발생한다고 합니다. 정확한 에러 메시지는 다음과 같습니다.

Exception has occurred: ImportError
cannot import name 'FastRCNNPredictor' from 'torchvision.models.detection' (C:\Users\sooon\anaconda3\envs\newenv\lib\site-packages\torchvision\models\detection_init_.py)
File "D:\Python_Test\GPURcnnStudy", line 5, in 
from torchvision.models.detection import fasterrcnn_resnet50_fpn, FastRCNNPredictor
ImportError: cannot import name 'FastRCNNPredictor' from 'torchvision.models.detection' (C:\Users\sooon\anaconda3\envs\newenv\lib\site-packages\torchvision\models\detection_init_.py)

이제 문제를 해결하기 위한 해결책을 설명해 드리겠습니다.

PyTorch 1.2.0 버전과 torchvision 0.4.0 버전에서는 FastRCNNPredictor이 torchvision.models.detection 패키지에 포함되어 있지 않습니다. 이 모델은 torchvision 0.5.0 버전부터 추가되었습니다.

따라서, FastRCNNPredictor을 사용하려면 torchvision 버전을 업그레이드해야 합니다. 가장 간단한 방법은 다음과 같이 torchvision을 최신 버전으로 업그레이드하는 것입니다.

pip install --upgrade torchvision

이 명령을 실행하면 torchvision이 최신 버전으로 업그레이드됩니다. 그런 다음, FastRCNNPredictor을 import하여 사용할 수 있을 것입니다.

from torchvision.models.detection import fasterrcnn_resnet50_fpn, FastRCNNPredictor

# 이제 FastRCNNPredictor을 사용할 수 있습니다.

이제 FastRCNNPredictor을 사용할 수 있어야 합니다. 문제가 해결되었는지 확인해보세요.

더 자세한 내용은 PyTorch 공식 문서의 torchvision 튜토리얼을 참조하시기 바랍니다. 해당 튜토리얼은 다음 링크에서 확인하실 수 있습니다.

이 튜토리얼에서는 torchvision의 다양한 기능과 모델들에 대해 자세히 설명하고 있습니다. 도움이 되길 바랍니다.

문제가 해결되지 않거나 추가적인 도움이 필요하시면 언제든지 질문해주세요. 답변이 틀릴 수도 있으니 참고 부탁드립니다. 감사합니다!


  • 답변이 어떠셨나요? 괜찮았다고 생각하신다면 아래 :heart:를 한 번 눌러주시길 부탁드려요!
  • 아래 답변은 Anthropic의 Claude-2 모델로 자동 생성한 것으로, 정확하지 않을 수 있습니다.
  • 잘못된 답변을 보셨다면 댓글로 첨삭 지도 부탁드립니다. :sweat_smile:

안녕하세요. torchvision를 import하는데 문제가 있다는 것을 잘 이해하겠습니다.

제가 보기에는 torchvision 버전이 최신 버전이 아닌 것 같습니다. FastRCNNPredictor은 torchvision 0.17.0 버전부터 지원됩니다.

따라서 아래와 같이 해결할 수 있을 것 같습니다.

  1. torchvision을 최신 버전으로 업그레이드 합니다.
pip install --upgrade torchvision
  1. 그리고 import 문을 다음과 같이 수정합니다.
from torchvision.models.detection import faster_rcnn_resnet50_fpn, FastRCNNPredictor

참고로, object detection 모델을 사용할 때는 torchvision 0.17.0 이상의 버전을 사용하는 것이 좋습니다.

코드 예시는 아래와 같습니다.

import torch
from torchvision.models.detection import fasterrcnn_resnet50_fpn, FastRCNNPredictor

# load a model pre-trained on COCO
model = fasterrcnn_resnet50_fpn(pretrained=True)

# replace the classifier with a new one
# that has num_classes which is user-defined
num_classes = 2 # 1 class (person) + background
# get number of input features for the classifier
in_features = model.roi_heads.box_predictor.cls_score.in_features  
# replace the pre-trained head with a new one
model.roi_heads.box_predictor = FastRCNNPredictor(in_features, num_classes) 

# load an image
img = torch.rand(3, 300, 400) 
predictions = model(img)

torchvision 모델을 사용할 때 버전 호환 문제가 자주 발생하니 주의하시기 바랍니다. 문제가 해결되지 않는다면 추가 정보를 주시면 도와드리겠습니다. 답변이 도움이 되었기를 바랍니다. 감사합니다.


  • 답변이 어떠셨나요? 괜찮았다고 생각하신다면 아래 :heart:를 한 번 눌러주시길 부탁드려요!
  1. 파이토치비전의 최신버전은 0.16.0
  2. import 수정문구는 원본 소스와 동일

인식이 잘못됨.
주어진 정보에 따르면, PyTorch 버전 1.2.0과 torchvision 버전 0.4.0을 사용하고

원본:
torch 버전: 2.1.0
torchvision: 0.16.0
가상환경: python 3.8.18

  • 아래 답변은 OpenAI의 GPT-4 모델로 자동 생성한 것으로, 정확하지 않을 수 있습니다.
  • 잘못된 답변을 보셨다면 댓글로 첨삭 지도 부탁드립니다. :sweat_smile:

안녕하세요, sooon2님. PyTorch와 관련된 질문을 주셔서 감사합니다. 질문을 정리해보면, torchvision.models.detection에서 FastRCNNPredictor를 import하는 과정에서 문제가 발생했다는 것으로 이해했습니다. 이 문제는 주로 PyTorch 또는 torchvision의 버전이 낮아서 발생하는 경우가 많습니다.

먼저, PyTorch와 torchvision의 버전을 확인해보시는 것이 좋습니다. FastRCNNPredictor는 torchvision 0.3.0 이상에서 사용 가능합니다. 현재 사용하고 계신 torchvision의 버전이 0.16.0이라고 하셨는데, 이는 일반적으로 존재하지 않는 버전입니다. torchvision의 버전은 PyTorch의 버전과 일치하도록 설계되었으며, 최신 버전은 0.10.0입니다. 따라서, torchvision의 버전을 확인하고 필요하다면 업데이트해야 합니다.

다음은 PyTorch와 torchvision의 버전을 확인하고 업데이트하는 방법입니다.

# PyTorch와 torchvision의 현재 버전 확인
import torch
import torchvision
print(torch.__version__)
print(torchvision.__version__)

# 필요하다면 PyTorch와 torchvision 업데이트
# !pip install torch --upgrade
# !pip install torchvision --upgrade

업데이트 후에도 문제가 해결되지 않는다면, FastRCNNPredictor를 직접 import하는 대신 torchvision.models.detection.faster_rcnn에서 FastRCNNPredictor를 import해보세요.

from torchvision.models.detection.faster_rcnn import FastRCNNPredictor

이 방법이 도움이 되었기를 바랍니다. 추가적인 문제가 발생하면 언제든지 질문해주세요.

참고하실 수 있는 PyTorch 공식 문서 링크를 아래에 남겨드립니다.

제가 제공한 해결 방법이 항상 정확하다는 보장은 없습니다. 다양한 방법을 시도해보시며, 문제를 해결하는 데 가장 적합한 방법을 찾아보시기 바랍니다.


  • 답변이 어떠셨나요? 괜찮았다고 생각하신다면 아래 :heart:를 한 번 눌러주시길 부탁드려요!
# torchvision/models/detection/faster_rcnn.py

...
__all__ = [
    "FasterRCNN",
    "FasterRCNN_ResNet50_FPN_Weights",
    "FasterRCNN_ResNet50_FPN_V2_Weights",
    "FasterRCNN_MobileNet_V3_Large_FPN_Weights",
    "FasterRCNN_MobileNet_V3_Large_320_FPN_Weights",
    "fasterrcnn_resnet50_fpn",
    "fasterrcnn_resnet50_fpn_v2",
    "fasterrcnn_mobilenet_v3_large_fpn",
    "fasterrcnn_mobilenet_v3_large_320_fpn",
]
# FastRCNNPredictor 포함되지 않음
...

FastRCNNPredictor 클래스가 from .faster_rcnn import * 의 범위에 포함되지 않음.

from torchvision.models.detection.faster_rcnn import FastRCNNPredictor로 직접 임포트 해야함.

1개의 좋아요