modelscope / FunASR

A Fundamental End-to-End Speech Recognition Toolkit and Open Source SOTA Pretrained Models, Supporting Speech Recognition, Voice Activity Detection, Text Post-processing etc.
https://www.funasr.com
Other
6.45k stars 687 forks source link

模型微调,加载训练数据后,报错: batch_size = input.size(0) AttributeError: 'str' object has no attribute 'size' #1389

Closed feifei-love closed 6 months ago

feifei-love commented 7 months ago

❓ Questions and Help

Before asking:

  1. search the issues.
  2. search the docs.

What is your question?

加载训练数据后,代码运行报错,

Code

[2024-02-26 16:35:10,943][root][INFO] - config.yaml is saved to: outputs/debug/ckpt/funasr2/exp2/config.yaml [2024-02-26 16:35:16,064][root][INFO] - init_param is not None: ('/root/.cache/modelscope/hub/damo/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-pytorch/model.pt',) [2024-02-26 16:35:16,065][root][INFO] - Loading pretrained params from /root/.cache/modelscope/hub/damo/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-pytorch/model.pt ckpt: /root/.cache/modelscope/hub/damo/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-pytorch/model.pt [2024-02-26 16:35:19,379][root][INFO] - total_num of samplers across ranks: 8635 [2024-02-26 16:35:19,379][root][INFO] - total_num of samplers across ranks: 2 [2024-02-26 16:35:19,380][root][WARNING] - distributed is not initialized, only single shard No checkpoint found at 'outputs/debug/ckpt/funasr2/exp2/model.pt', starting from scratch rank: 0, Training Epoch: 1: 0%| | 0/270 [00:00<?, ?it/s]Error executing job with overrides: ['+model=damo/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-pytorch', '+model_revision=v2.0.4', '+train_data_set_list=/root/example_data/train/train.jsonl', '+valid_data_set_list=/root/example_data/train/val.jsonl', '++dataset_conf.batch_size=32', '++dataset_conf.batch_type=example', '++train_conf.max_epoch=2', '++dataset_conf.num_workers=4', '+output_dir=outputs/debug/ckpt/funasr2/exp2'] Traceback (most recent call last): File "/root/FunASR/funasr/bin/train.py", line 42, in main_hydra main(kwargs) File "/root/FunASR/funasr/bin/train.py", line 185, in main trainer.run() File "/root/.local/conda/envs/funasr/lib/python3.8/site-packages/funasr/train_utils/trainer.py", line 161, in run self._train_epoch(epoch) File "/root/.local/conda/envs/funasr/lib/python3.8/site-packages/funasr/train_utils/trainer.py", line 214, in _train_epoch for batch_idx, batch in enumerate(self.dataloader_train): File "/root/.local/conda/envs/funasr/lib/python3.8/site-packages/torch/utils/data/dataloader.py", line 634, in next data = self._next_data() File "/root/.local/conda/envs/funasr/lib/python3.8/site-packages/torch/utils/data/dataloader.py", line 1346, in _next_data return self._process_data(data) File "/root/.local/conda/envs/funasr/lib/python3.8/site-packages/torch/utils/data/dataloader.py", line 1372, in _process_data data.reraise() File "/root/.local/conda/envs/funasr/lib/python3.8/site-packages/torch/_utils.py", line 644, in reraise raise exception AttributeError: Caught AttributeError in DataLoader worker process 0. Original Traceback (most recent call last): File "/root/.local/conda/envs/funasr/lib/python3.8/site-packages/torch/utils/data/_utils/worker.py", line 308, in _worker_loop data = fetcher.fetch(index) File "/root/.local/conda/envs/funasr/lib/python3.8/site-packages/torch/utils/data/_utils/fetch.py", line 51, in fetch data = [self.dataset[idx] for idx in possibly_batched_index] File "/root/.local/conda/envs/funasr/lib/python3.8/site-packages/torch/utils/data/_utils/fetch.py", line 51, in data = [self.dataset[idx] for idx in possibly_batched_index] File "/root/.local/conda/envs/funasr/lib/python3.8/site-packages/funasr/datasets/audio_datasets/datasets.py", line 61, in getitem speech, speech_lengths = extract_fbank(data_src, data_type=self.data_type, frontend=self.frontend, is_final=True) # speech: [b, T, d] File "/root/.local/conda/envs/funasr/lib/python3.8/site-packages/funasr/utils/load_utils.py", line 106, in extract_fbank data, data_len = frontend(data, data_len, kwargs) File "/root/.local/conda/envs/funasr/lib/python3.8/site-packages/torch/nn/modules/module.py", line 1501, in _call_impl return forward_call(*args, **kwargs) File "/root/.local/conda/envs/funasr/lib/python3.8/site-packages/funasr/frontends/wav_frontend.py", line 125, in forward batch_size = input.size(0) AttributeError: 'str' object has no attribute 'size'

Set the environment variable HYDRA_FULL_ERROR=1 for a complete stack trace. rank: 0, Training Epoch: 1: 0%|

What have you tried?

What's your environment?

gg22mm commented 7 months ago

使用效果怎么样啊,跟 “讯飞听见” 比

LauraGPT commented 6 months ago

Bug has been fixed. Please ref to the docs: https://github.com/alibaba-damo-academy/FunASR/blob/main/docs/tutorial/README_zh.md

juzstu commented 6 months ago

I use funasr==1.0.23, still get the same error. File "/usr/local/lib/python3.8/dist-packages/funasr/frontends/wav_frontend.py", line 126, in forward batch_size = input.size(0) AttributeError: 'str' object has no attribute 'size'

Lzzycola commented 6 months ago

I use funasr==1.0.23, still get the same error. File "/usr/local/lib/python3.8/dist-packages/funasr/frontends/wav_frontend.py", line 126, in forward batch_size = input.size(0) AttributeError: 'str' object has no attribute 'size'

same with me

xinliu9451 commented 5 months ago

我也遇到了这个报错,但是检查下来都是训练集音频地址对应的音频找不到,你可以先试着去读取数据集地址里面的每一个音频,并将捕获的异常打印出来

farmer21cn commented 2 months ago

这个问题解决了吗,是不是音频文件必须是http路径啊?

xinliu9451 commented 2 months ago

这个问题解决了吗,是不是音频文件必须是http路径啊?

不是http也行,我当时是因为本地音频被破坏了,或者是对应地址的音频找不到。所以你可以试着去读取一下你的本地音频,然后排查一下是否有错

farmer21cn commented 2 months ago

谢谢,还真是你说的原因。

冯亚军 @.***

 

------------------ 原始邮件 ------------------ 发件人: "modelscope/FunASR" @.>; 发送时间: 2024年7月26日(星期五) 上午10:46 @.>; @.**@.>; 主题: Re: [modelscope/FunASR] 模型微调,加载训练数据后,报错: batch_size = input.size(0) AttributeError: 'str' object has no attribute 'size' (Issue #1389)

这个问题解决了吗,是不是音频文件必须是http路径啊?

不是http也行,我当时是因为本地音频被破坏了,或者是对应地址的音频找不到。所以你可以试着去读取一下你的本地音频,然后排查一下是否有错

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you commented.Message ID: @.***>

segu-L commented 1 month ago

确实,音频的json用的相对路径,换了个工作目录就报错了