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

TypeError: forward() missing 2 required positional arguments: 'inputs' and 'targets' #6

Closed sechan-hwang closed 4 years ago

sechan-hwang commented 4 years ago

안녕하세요. ^^ 아침에 새로 clone 해서 돌렸는데 아래 에러가 발생했어요. 해결해 보려고 오전에 봤는데 도저히 안되서 이슈등록합니다. 확인 한번 해 주세요~

[2020-03-16 12:07:17,562 dataset.py:158 - split_dataset()] split dataset start !! [2020-03-16 12:07:17,562 dataset.py:67 - augmentation()] Applying Augmentation... [2020-03-16 12:07:17,563 dataset.py:202 - split_dataset()] split dataset complete !! [2020-03-16 12:07:17,563 train.py:126 - ()] start [2020-03-16 12:07:23,428 trainer.py:81 - supervised_train()] timestep: 0/ 24, loss: 0.4985, cer: 1.84, elapsed: 5.86s 0.10m 0.00h [2020-03-16 12:07:31,911 trainer.py:81 - supervised_train()] timestep: 10/ 24, loss: 0.4857, cer: 1.28, elapsed: 8.48s 0.24m 0.00h [2020-03-16 12:07:38,277 trainer.py:81 - supervised_train()] timestep: 20/ 24, loss: 0.4668, cer: 1.18, elapsed: 6.37s 0.35m 0.01h [2020-03-16 12:07:38,951 trainer.py:96 - supervised_train()] train() completed [2020-03-16 12:07:39,593 train.py:151 - ()] Epoch 0 (Training) Loss 0.4552 CER 1.1624 <queue.Queue object at 0x7fa4f361f350> [2020-03-16 12:07:39,594 evaluator.py:18 - evaluate()] evaluate() start Traceback (most recent call last): File "train.py", line 159, in valid_loss, valid_cer = evaluate(model, valid_queue, criterion, device) File "/schwang/stt_kai/Korean-Speech-Recognition_20200316/package/evaluator.py", line 38, in evaluate y_hat, logit = model(feats, scripts, teacher_forcing_ratio=0.0, use_beam_search = False) File "/root/anaconda3/envs/pytorch3.7/lib/python3.7/site-packages/torch/nn/modules/module.py", line 532, in call result = self.forward(*input, kwargs) File "/root/anaconda3/envs/pytorch3.7/lib/python3.7/site-packages/torch/nn/parallel/data_parallel.py", line 152, in forward outputs = self.parallel_apply(replicas, inputs, kwargs) File "/root/anaconda3/envs/pytorch3.7/lib/python3.7/site-packages/torch/nn/parallel/data_parallel.py", line 162, in parallel_apply return parallel_apply(replicas, inputs, kwargs, self.device_ids[:len(replicas)]) File "/root/anaconda3/envs/pytorch3.7/lib/python3.7/site-packages/torch/nn/parallel/parallel_apply.py", line 85, in parallel_apply output.reraise() File "/root/anaconda3/envs/pytorch3.7/lib/python3.7/site-packages/torch/_utils.py", line 394, in reraise raise self.exc_type(msg) TypeError: Caught TypeError in replica 1 on device 1. Original Traceback (most recent call last): File "/root/anaconda3/envs/pytorch3.7/lib/python3.7/site-packages/torch/nn/parallel/parallel_apply.py", line 60, in _worker output = module(*input, *kwargs) File "/root/anaconda3/envs/pytorch3.7/lib/python3.7/site-packages/torch/nn/modules/module.py", line 532, in call result = self.forward(input, kwargs) TypeError: forward() missing 2 required positional arguments: 'inputs' and 'targets'

sooftware commented 4 years ago

evaluate() 부분에서 에러 나신거죠? y_hat, logit = model(feats, scripts, teacher_forcing_ratio=0.0, use_beam_search = False) 과 같이 수정하시고 확인 부탁드려요.

sechan-hwang commented 4 years ago

주신 코드와 현재 코드가 동일 합니다.

sechan-hwang commented 4 years ago

model.module.flatten_parameters() y_hat, logit = model(feats, scripts, teacher_forcing_ratio=0.0, use_beam_search = False)

y_hat, logit = model(feats, scripts, teacher_forcing_ratio=0.0, use_beam_search = False)

loss = criterion(logit.contiguous().view(-1, logit.size(-1)), target.contiguous().view(-1))

sooftware commented 4 years ago

image

현재 올려져있는 코드로 테스트 해본 결과 정상작동하는 것을 확인했습니다.

evaluate 부분에서 에러가 나신것 같은데 위 사진을 보시게 되면 evaluate도 정상 동작하는걸 확인하실 수 있습니다. 혹시 한번 더 확인해 주실 수 있을까요?

sooftware commented 4 years ago

제가 코드 변수명등을 계속 고민하면서 중간중간 수정을 하다보니, 예기치 않은 짜잘한 에러들이 commit마다 존재합니다. ㅠ.ㅠ 확실한 테스트를 해보고 올려야 하는데, 바쁘다보니 정확한 테스트를 하지 못하고 올릴 때가 많습니다.

죄송합니다.

sechan-hwang commented 4 years ago

지금 코드 클론해서 돌렸는데 이젠 KeyError: 'KaiSpeech_label_000038' 에러 발생하네용 ㅠㅜ 어느분이 이슈로 올리신거보니 경로 맞추주면 되는거 같은데. 확인해봐야 겠습니다.

sooftware commented 4 years ago

네네. 가능하시면 어떻게 됐는지 알려주시면 감사하겠습니다 !!

sechan-hwang commented 4 years ago

data/data_list/sample_list.csv 파일 수정해서 KeyError 는 넘어갔습니다. 근데 위 에러가 다시 발생 합니다. error

sooftware commented 4 years ago

evaluate() 코드 좀 볼 수 있을까요?

sechan-hwang commented 4 years ago

eval

sooftware commented 4 years ago

evaluate() 자체는 문제가 없어보입니다.
image

ListenAttendSpell 클래스의 forward() 메서드를 체크해주시겠어요??

위와 같은 코드여야 합니다.

해당 에러는 파라미터가 서로 맞지 않는 에러이기 때문에 아마 단순한 에러일거에요.

sechan-hwang commented 4 years ago

위 코드가 달라서 현재 올라온 코드로 다시 받아서 실행했는데요. Traceback (most recent call last): File "train.py", line 86, in device=device File "/schwang/stt_kai/Korean-Speech-Recognition_20200317/models/listener.py", line 95, in init assert use_pyramidal and n_layers > 4, "Pyramidal Listeners n_layers should be bigger than 4" AssertionError: Pyramidal Listeners n_layers should be bigger than 4

이 문제가 발생해서 파람 변경하고 샘플 파일로 실행하니 TypeError: forward() missing 2 required positional arguments: 'inputs' and 'targets'

오류 여전히 발생하네요. ㅜㅡ

sooftware commented 4 years ago

아마 모델 코드가 현재 코드와 조금 다르지 않나 싶습니다.
models 폴더쪽을 다시 다운받으셔서 덮어쓰시고 실행해봐주실래요??

sechan-hwang commented 4 years ago

아 찾았습니다.

y_hat, logit = model(inputs=feats, targets=scripts, teacher_forcing_ratio=0.0, use_beam_search = False)

명시적으로 inputs=feats, targets=scripts 지정해주니 오류가 안나네요..^^

sooftware commented 4 years ago

다행이네요.
결과 알려주셔서 감사합니다.