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

run_pretrain 에러 #40

Closed minlom closed 4 years ago

minlom commented 4 years ago

안녕하세요, 업로드 해주신 run_pretrain를 기동하려고 하니 아래와 같은 에러가 발생하였습니다.

금일 코드를 새로 받아 기동한 결과 seq2seq 경로에 modules.py가 없다는 에러가 발생하 해당 파일은 옯기고 실행하였습니다. Traceback (most recent call last): File "run_pretrain.py", line 34, in model = load_test_model(opt, opt.device) File "../kospeech/model_builder.py", line 124, in load_test_model model = torch.load(opt.model_path, map_location=lambda storage, loc: storage).to(device) File "/home/ai/anaconda3/envs/sr_test/lib/python3.6/site-packages/torch/serialization.py", line 593, in load return _legacy_load(opened_file, map_location, pickle_module, **pickle_load_args) File "/home/ai/anaconda3/envs/sr_test/lib/python3.6/site-packages/torch/serialization.py", line 773, in _legacy_load result = unpickler.load() ModuleNotFoundError: No module named 'kospeech.models.seq2seq.modules'

실행결과 index가 맞지 않다고 하는데 추가로 설정해주어야 하는 것이 있을까요? Traceback (most recent call last): File "run_pretrain.py", line 38, in output = model(feature_vector.unsqueeze(0), input_length, teacher_forcing_ratio=0.0, return_attns=False) File "/home/ai/anaconda3/envs/sr_test/lib/python3.6/site-packages/torch/nn/modules/module.py", line 550, in call result = self.forward(*input, *kwargs) File "/home/ai/anaconda3/envs/sr_test/lib/python3.6/site-packages/torch/nn/parallel/data_parallel.py", line 151, in forward inputs, kwargs = self.scatter(inputs, kwargs, self.device_ids) File "/home/ai/anaconda3/envs/sr_test/lib/python3.6/site-packages/torch/nn/parallel/data_parallel.py", line 162, in scatter return scatter_kwargs(inputs, kwargs, device_ids, dim=self.dim) File "/home/ai/anaconda3/envs/sr_test/lib/python3.6/site-packages/torch/nn/parallel/scatter_gather.py", line 36, in scatter_kwargs inputs = scatter(inputs, target_gpus, dim) if inputs else [] File "/home/ai/anaconda3/envs/sr_test/lib/python3.6/site-packages/torch/nn/parallel/scatter_gather.py", line 28, in scatter res = scatter_map(inputs) File "/home/ai/anaconda3/envs/sr_test/lib/python3.6/site-packages/torch/nn/parallel/scatter_gather.py", line 15, in scatter_map return list(zip(map(scatter_map, obj))) File "/home/ai/anaconda3/envs/sr_test/lib/python3.6/site-packages/torch/nn/parallel/scatter_gather.py", line 13, in scatter_map return Scatter.apply(target_gpus, None, dim, obj) File "/home/ai/anaconda3/envs/sr_test/lib/python3.6/site-packages/torch/nn/parallel/_functions.py", line 88, in forward streams = [_get_stream(device) for device in target_gpus] File "/home/ai/anaconda3/envs/sr_test/lib/python3.6/site-packages/torch/nn/parallel/_functions.py", line 88, in streams = [_get_stream(device) for device in target_gpus] File "/home/ai/anaconda3/envs/sr_test/lib/python3.6/site-packages/torch/nn/parallel/_functions.py", line 115, in _get_stream if _streams[device] is None: IndexError: list index out of range

sooftware commented 4 years ago

현재 pretrain 모델은 지금의 코드 구조에서 학습된 모델이 아니기 때문에 폴더와 파일 구조의 차이 때문에 발생하는 에러입니다.
해당 구조를 하나하나 맞춰줄 수도 있지만, 현재 구조에서 새로 학습을 하여 pretrain 모델을 다시 공개할 예정입니다.
학습되는 동안 조금만 기다려주시면 감사하겠습니다.

minlom commented 4 years ago

네 알겠습니다. 확인 감사합니다!

sooftware commented 4 years ago

지금 아직 첫 에폭만 돈 모델이지만 83~84% 정도 인식률은 내는 모델로 업데이트하여 run_pretrain.py이 정상 작동하는 것을 확인했고 모델 파일을 수정하여 올렸습니다.

minlom commented 4 years ago

네 감사합니다! 확인해 보겠습니다.

minlom commented 4 years ago

안녕하세요, 새로 업데이트 해주신 pretrain model을 기반으로 run_pretrain.sh를 기동한 결과 이전과 같은 에러가 발생합니다. 금일 코드를 새로 받아 기동하였고, 별도로 경로 변경을 해주거나 하지는 않고 바로 스크립트를 실행하였습니다. 모델 로드까지는 되었고, 예측할 때 에러가 나는 것으로 보입니다. 혹시 다른 설정이 필요한 것인지요?

/home/ai/anaconda3/envs/sr_test/lib/python3.6/site-packages/torch/serialization.py:657: SourceChangeWarning: source code of class 'kospeech.models.seq2seq.attention.MultiHeadAttention' has changed. you can retrieve the original source code by accessing the object's source attribute or set torch.nn.Module.dump_patches = True and use the patch tool to revert the changes. warnings.warn(msg, SourceChangeWarning) Traceback (most recent call last): File "run_pretrain.py", line 40, in teacher_forcing_ratio=0.0, return_decode_dict=False) File "/home/ai/anaconda3/envs/sr_test/lib/python3.6/site-packages/torch/nn/modules/module.py", line 550, in call result = self.forward(*input, *kwargs) File "/home/ai/anaconda3/envs/sr_test/lib/python3.6/site-packages/torch/nn/parallel/data_parallel.py", line 151, in forward inputs, kwargs = self.scatter(inputs, kwargs, self.device_ids) File "/home/ai/anaconda3/envs/sr_test/lib/python3.6/site-packages/torch/nn/parallel/data_parallel.py", line 162, in scatter return scatter_kwargs(inputs, kwargs, device_ids, dim=self.dim) File "/home/ai/anaconda3/envs/sr_test/lib/python3.6/site-packages/torch/nn/parallel/scatter_gather.py", line 37, in scatter_kwargs kwargs = scatter(kwargs, target_gpus, dim) if kwargs else [] File "/home/ai/anaconda3/envs/sr_test/lib/python3.6/site-packages/torch/nn/parallel/scatter_gather.py", line 28, in scatter res = scatter_map(inputs) File "/home/ai/anaconda3/envs/sr_test/lib/python3.6/site-packages/torch/nn/parallel/scatter_gather.py", line 19, in scatter_map return list(map(type(obj), zip(map(scatter_map, obj.items())))) File "/home/ai/anaconda3/envs/sr_test/lib/python3.6/site-packages/torch/nn/parallel/scatter_gather.py", line 15, in scatter_map return list(zip(*map(scatter_map, obj))) File "/home/ai/anaconda3/envs/sr_test/lib/python3.6/site-packages/torch/nn/parallel/scatter_gather.py", line 13, in scatter_map return Scatter.apply(target_gpus, None, dim, obj) File "/home/ai/anaconda3/envs/sr_test/lib/python3.6/site-packages/torch/nn/parallel/_functions.py", line 88, in forward streams = [_get_stream(device) for device in target_gpus] File "/home/ai/anaconda3/envs/sr_test/lib/python3.6/site-packages/torch/nn/parallel/_functions.py", line 88, in streams = [_get_stream(device) for device in target_gpus] File "/home/ai/anaconda3/envs/sr_test/lib/python3.6/site-packages/torch/nn/parallel/_functions.py", line 115, in _get_stream if _streams[device] is None: IndexError: list index out of range

sooftware commented 4 years ago

음 CUDA 쪽 문제인 것 같은데 GPU 환경에서 하시는게 맞으시나요?

minlom commented 4 years ago

네 device 설정은 cuda로 되어 있는 것을 확인하였습니다.

혹시 마지막으로 업데이트 해주신 모델의 학습 코드 버전을 알 수 있을까요? 추가적으로 10.31%의 에러율을 측정했던 코드 버전도 알 수 있을까요?

확인 부탁드립니다.

minlom commented 4 years ago

아 혹시 single GPU 환경에서는 안되는 것인지요?