mmdetection을 custom coco 형태의 dataset에 적용하는데 문제가 있습니다

KeyError: 'cfg or default_args must contain the key "type", but got {'by_epoch': False, 'interval': 10000}\nNone' 이 떠서 type이 없는 dict가 있나 확인했는데 없었습니다. 어떻게 해결해야 하나요..
질문은 일단 stack overflow에 올려놓긴 했습니다. 감사합니다.
stackoverflow에 올렸던 질문입니다

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

에러 메시지를 보면 cfgdefault_argstype이라는 키가 없다는 것을 알 수 있습니다. 이는 mmdetection의 설정 파일에서 발생하는 문제입니다. 설정 파일에서 type 키를 찾을 수 없기 때문에 KeyError가 발생합니다.

해결 방법으로는 다음과 같습니다.

  1. configs 디렉토리에 있는 설정 파일 중 하나를 선택합니다. 예를 들어 configs/faster_rcnn/faster_rcnn_r50_fpn_1x_coco.py를 선택합니다.

  2. 해당 설정 파일을 열어 default_runtime.py를 찾습니다. 이 파일에서 default_args 딕셔너리를 찾습니다.

  3. default_args 딕셔너리에 type 키를 추가합니다. 예를 들어 다음과 같이 추가할 수 있습니다.

    default_args = dict(
        type='FasterRCNN',
        ...
    )
    
  4. 설정 파일을 저장하고 다시 실행해 봅니다.

이 방법으로 문제가 해결되지 않는다면, mmdet/apis/train.py 파일에서 train_detector 함수를 찾아 cfgdefault_args를 확인해 보세요. 이 함수에서도 type 키가 필요합니다.

더 자세한 내용은 mmdetection의 공식 문서(Welcome to MMDetection’s documentation! — MMDetection 3.0.0 documentation)를 참고하시기 바랍니다.


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

안녕하세요! 질문에 대해 답변 드리겠습니다.

문제는 cfg 또는 default_args에 "type"이라는 키가 없어서 발생하는 것 같습니다. 이 문제를 해결하려면, 해당 키를 추가해야 합니다. 아래는 예시입니다.

cfg = dict(
    type='SomeType',
    by_epoch=False,
    interval=10000
)

또는

default_args = dict(
    type='SomeType',
    by_epoch=False,
    interval=10000
)

"type"의 값은 사용하려는 모듈에 따라 다릅니다. 예를 들어, optimizer의 경우 "SGD" 또는 "Adam" 등이 될 수 있습니다. 해당 값을 올바르게 설정하려면, 사용하려는 모듈의 문서를 참조하시기 바랍니다.

mmdetection의 경우, 설정 파일을 수정하여 이 문제를 해결할 수 있습니다. 설정 파일의 위치는 다음과 같습니다.

configs/_base_/schedules/schedule_x.py

여기서 x는 사용 중인 스케줄 번호입니다. 이 파일에서 "type" 키가 누락된 부분을 찾아 수정하십시오.

이렇게 해도 문제가 해결되지 않으면, mmdetection의 GitHub 이슈에 문제를 제기하거나, 해당 프로젝트의 문서나 예제를 참조하여 더 자세한 정보를 얻으실 수 있습니다.

참고로, PyTorch 및 mmdetection에 대한 한국어 자료는 다음 링크에서 확인하실 수 있습니다.

도움이 되길 바랍니다! 추가 질문이 있으시면 언제든지 물어보세요.


  • 답변이 어떠셨나요? 괜찮았다고 생각하신다면 아래 :heart:를 한 번 눌러주시길 부탁드려요!
1개의 좋아요

에러 내용을 보면 hooking 관련된 config가 다른 곳에 적혀 있는 것으로 보입니다. 혹시 config 쪽이 잘못 적용된 부분이 있는지 보셔야 할 것 같네요.

그리고 적어주신 정보만으로는 어떤 학습인지 정확히 알 수 없어서 추가로 현재 상황을 더 적어주시면 구체적인 답이 가능할 것 같습니다.

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

안녕하세요! mmdetection을 사용하여 custom coco 형태의 dataset에 적용하는 과정에서 문제가 발생한 것으로 보입니다. KeyError 문제를 해결하기 위해 다음 단계를 따라 해결해 보세요.

  1. 먼저, KeyError가 발생한 위치를 확인하세요. 오류 메시지에 따르면 cfg 또는 default_args에 "type"이라는 키가 포함되어 있어야 하는데, 그렇지 않은 것으로 보입니다. 해당 위치를 찾아 코드를 수정해야 합니다.

  2. mmdetection의 설정 파일을 확인하세요. 설정 파일은 일반적으로 .py 파일로 되어 있으며, 다양한 설정이 포함되어 있습니다. 예를 들어, 데이터셋, 모델, 학습 및 평가 관련 설정 등이 포함됩니다. 설정 파일에서 "type" 키가 누락된 부분이 있는지 확인하고, 필요한 경우 해당 부분을 수정하세요.

  3. 문제가 여전히 해결되지 않은 경우, mmdetectionGitHub issue 페이지를 참조하여 유사한 문제가 있는지 확인하세요. 또한, 공식 문서를 참조하여 설정 파일의 예제와 사용법을 확인하세요.

  4. 문제가 여전히 해결되지 않는 경우, 질문에 제공된 정보가 부족할 수 있으므로, 오류 메시지와 함께 사용한 설정 파일의 코드를 제공해 주시면 더 구체적인 도움을 드릴 수 있습니다.

마지막으로, Stack Overflow에 올리신 질문에 대한 답변이 있는지 확인해 보세요. 그러나 여기에 제공된 정보로는 문제를 정확하게 해결하기 어려울 수 있으므로, 필요한 경우 추가 정보를 제공해 주시기 바랍니다.


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

안녕하세요! mmdetection을 사용하여 custom coco 형태의 dataset에 적용하는 과정에서 문제가 발생한 것으로 보입니다. 제공해주신 정보를 바탕으로 문제를 해결하는데 도움을 드리겠습니다.

먼저, 문제가 발생한 부분의 코드를 확인해야 합니다. KeyError가 발생한 부분을 찾아서 해당 부분의 코드를 제공해주시면 좋겠습니다. 그러면 문제의 원인을 파악하는데 도움이 될 것입니다.

그리고 mmdetection을 사용할 때, config 파일을 사용하여 모델 및 학습 관련 설정을 지정합니다. 이 경우, config 파일에 "type" 키가 누락되어 있는 것으로 추측됩니다. config 파일을 다시 확인하고 필요한 "type" 키를 추가해주시기 바랍니다. 예를 들어, optimizer 설정에서 다음과 같이 "type" 키를 포함해야 합니다.

optimizer = dict(type='SGD', lr=0.01, momentum=0.9, weight_decay=0.0001)

또한, mmdetection에서 제공하는 config 파일을 참고하시면 도움이 될 것입니다. mmdetection의 config 디렉토리에서 다양한 모델 및 설정에 대한 예제를 확인하실 수 있습니다.

만약 추가 정보가 필요하시거나 문제가 해결되지 않는다면, 언제든지 추가 질문을 올려주시기 바랍니다. 도움을 드리겠습니다.


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