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

data_loader의 not enough values to unpack(expected 3, got0 ) 에러로 문의드립니다. #114

Closed wooluck-98 closed 3 years ago

wooluck-98 commented 3 years ago

image

Title

image 이 처럼 data폴더의 모두 txt파일을 넣어놓고, 경로도 절대 경로, 상대 경로 모두 지정하여 해보았지만 저 오류가 계속 나타났습니다.

오류가 발생한 부분의 코드

CMD 부분의 결과입니다.

image image image

sooftware commented 3 years ago

셔플 함수의 self.transcripts 변수를 프린트로 찍은 결과를 올려주시겠어요?

wooluck-98 commented 3 years ago

이렇게 숫자 가득 뜹니다! image

image

sooftware commented 3 years ago

다른 변수들도 찍어주시겠어요?

wooluck-98 commented 3 years ago

위에서는 정상적으로 audio_path, transcripts, augment_method가 출력되다가 어떤 Applying Spec Augmentation때는 self.audio_path가 출력되지 않고, 마지막 Applying Spec Augmentation에서는 self.transcripts가 출력되지 않습니다. 코랩 터미널이다보니 복사붙여놓기가 되지 않는점 양해부탁드립니다 ㅠ

마지막 Applying Spec Augmentation image 우선 audio_path가 이렇게 쭈욱 나오고,

image method가 나오고 image

이렇게 다시 에러가 납니다.

sooftware commented 3 years ago

코랩이라 그럴수도 있을것 같네요. 스레드로 돌아가기 때문에 코랩 환경에서는 안될수도 있습니다. 커맨드에서 train.num_workers=1로 지정해서 해보세요.

wooluck-98 commented 3 years ago

/content/KoSpeech/configs/train/ds2_train.yaml 에서 num_workers: 1로 수정해보았는데도, 결과는 똑같습니다.

sooftware commented 3 years ago

실행커맨드에 추가해주세요.

wonwooo commented 3 years ago

/content/KoSpeech/configs/train/ds2_train.yaml 에서 num_workers: 1로 수정해보았는데도, 결과는 똑같습니다.

wooluck-98님 혹시 KsponSpeech_01 하나만 가지고 학습 시도하시는 것 같은데 맞나요?

kospeech/data/data_loader.py 의 split_dataset 함수를 보시면 train_num과 valid_num 이 620000 / 2545로 설정 되어있는데, 이 숫자가

KsponSpeech_01~05 를 모두 가지고있다는 가정하에 설정 되어있는 것 같습니다. 그래서, 확보한 데이터 숫자가 적으면 validset을 만드는 과정에서 데이터 숫자가 없어서 올려주신 그림과 같은 에러가 납니다. 데이터셋 5개 중 1개면 110000개 정도이니, 가지고 계신 데이터 숫자에 맞게 두 변수값을 스크립트에서 직접 변경 해보세요. 아마 지금은 가지고계신 총 데이터 갯수보다 train_num이 더 커서 valid set을 만들 수 없을겁니다.

wooluck-98 commented 3 years ago

/content/KoSpeech/configs/train/ds2_train.yaml 에서 num_workers: 1로 수정해보았는데도, 결과는 똑같습니다.

wooluck-98님 혹시 KsponSpeech_01 하나만 가지고 학습 시도하시는 것 같은데 맞나요?

kospeech/data/data_loader.py 의 split_dataset 함수를 보시면 train_num과 valid_num 이 620000 / 2545로 설정 되어있는데, 이 숫자가

KsponSpeech_01~05 를 모두 가지고있다는 가정하에 설정 되어있는 것 같습니다. 그래서, 확보한 데이터 숫자가 적으면 validset을 만드는 과정에서 데이터 숫자가 없어서 올려주신 그림과 같은 에러가 납니다. 데이터셋 5개 중 1개면 110000개 정도이니, 가지고 계신 데이터 숫자에 맞게 두 변수값을 스크립트에서 직접 변경 해보세요. 아마 지금은 가지고계신 총 데이터 갯수보다 train_num이 더 커서 valid set을 만들 수 없을겁니다.

전체 데이터를 가지고 하고 있습니다. 에폭 0까지 학습은 시작했는데,, 코랩 GPU를 활용하지 못하고 있어서 더이상 진행이 되지 않고 있습니다. . 이 문제만 해결되고 다시 여쭈어보겠습니다. 답변 감사합니다!