반응형
대회진행 중 oversampling을 하고 싶어서 데이터셋을 건드려 보던 중 아래와 같은 에러를 마주치게되었다
cocodataset: annotation ids in are not unique!
찾아보니 해당 오류는 데이터의 정보가 담겨있는 json파일에서 중복된 id가 있어서 발생한 오류 였고, detectron2 공식문서에서 아래와 같은 상황에서 에러를 발생시키는 것을 확인했다.
문서와 똑같은 방법으로 중복된 아이디를 제거하는 set과 id들을 담은 리스트를 확인하니 개수가 차이나는 것을 발견했고 중복이 발생한 것을 확인할 수 있었다.
즉, 아래와 같이 해당 id가 unique한 값을 가져야 하는데 겹치게 생성이 된 상황
중복이 생기게 진행한 과정들은 다음과 같다 원본 data를 새로운 리스트인 train에 추가한후 train에서 id를 수정하는 과정을 거쳐 id가 달라졌다고 생각을 했다
그러나 원본파일에서 append로 추가한 딕셔너리와 원본 딕셔너리가 참조되어있어서 원본파일도 id가 변경이되면서 문제가 발생하였다
따라서 처음에 copy.deepcopy()를 이용하여 새롭게 파일을 만든 후 진행하니 해결!
끗!
반응형
'💻 > Issue sol' 카테고리의 다른 글
백준허브 업로드 에러, 이슈(2023.03.08 수정) (2) | 2022.10.11 |
---|