sooftware / kospeech

Open-Source Toolkit for End-to-End Korean Automatic Speech Recognition leveraging PyTorch and Hydra.
https://sooftware.github.io/kospeech/
Apache License 2.0
605 stars 192 forks source link

Key Error #4

Closed JoonseoKang closed 4 years ago

JoonseoKang commented 4 years ago

Traceback (most recent call last): File "train.py", line 119, in target_dict = target_dict, File "C:\Users\nextgen\Desktop\Korean-Speech-Recognition-master\package\dataset.py", line 187, in split_dataset pack_by_length=hparams.pack_by_length File "C:\Users\nextgen\Desktop\Korean-Speech-Recognition-master\package\dataset.py", line 41, in init self.sort_by_length() File "C:\Users\nextgen\Desktop\Korean-Speech-Recognition-master\package\dataset.py", line 88, in sort_by_length target_lengths.append(len(self.target_dict[key].split())) KeyError: 'KaiSpeech_label_088282'

Traceback (most recent call last): File "train.py", line 119, in target_dict = target_dict, File "C:\Users\nextgen\Desktop\Korean-Speech-Recognition-master\package\dataset.py", line 187, in split_dataset pack_by_length=hparams.pack_by_length File "C:\Users\nextgen\Desktop\Korean-Speech-Recognition-master\package\dataset.py", line 41, in init self.sort_by_length() File "C:\Users\nextgen\Desktop\Korean-Speech-Recognition-master\package\dataset.py", line 88, in sort_by_length target_lengths.append(len(self.target_dict[key].split())) KeyError: 'KaiSpeech_label_000038'

전처리를 모두 해주고 (labeling작업) train.py를 실행하면 Key가 없다고 오류가 나네요 제가 잘못한것인지 확인을 위해서 define.py의 경로를 sample로 바꿔주고 sample data를 이용하여 해봐도 같은 오류가 나타났습니다. loader.py 의 load_targets을 이용해서 target_dict을 만들어서 key error가 발생한 key를 넣어보면 label이 잘 나오는 것을 확인 했습니다. dataset.py의 sort_by_length 함수에서 key = label_path.split('/')[-1].split('.')[0]로 확인을 해봐도 KeyError가 나타난 키가 나오는데 어떻게 하면 좋을까요

sooftware commented 4 years ago

혹시 언제 clone하신 코드를 돌려보신 건지 알 수 있을까요??
오늘 저도 새로 돌린 코드는 정상적으로 돌아가고 있습니다.

sooftware commented 4 years ago

KeyError 같은 경우 보통 target_dict와 train_list가 일치하지 않게 되면 발생합니다.
train_list.csv와 target_dict.bin 같은 경우는 제가 만들어놓은 파일을 써서 진행해보실래요?? target_dict 경로는 ./data/pickle/new_target_dict.bin입니다. target_dict.bin이 아닌, new_target_dict.bin을 사용하셔야 돌아갈거에요.

https://github.com/sh951011/Korean-Speech-Recognition/wiki/Data-Analysis

오늘 정리한 데이터 분석 내용입니다.
해당 내용에 따라 target_dict와 train_list.csv를 조금 수정했습니다.

JoonseoKang commented 4 years ago

target_dict을 만들고 경로 설정을 안했었네요