YYuX-1145 / Bert-VITS2-Integration-package

vits2 backbone with bert
https://www.bilibili.com/video/BV13p4y1d7v9
GNU Affero General Public License v3.0
336 stars 30 forks source link

报错optimizer.step()和lr_scheduler.step()顺序问题 #11

Closed yuelaizhe closed 1 year ago

yuelaizhe commented 1 year ago

INFO:OUTPUT_MODEL:====> Epoch: 1 G:\Bert-VITS2-Integration-Package\venv\lib\site-packages\torch\optim\lr_scheduler.py:138: UserWarning: Detected call of lr_scheduler.step() before optimizer.step(). In PyTorch 1.1.0 and later, you should call them in the opposite order: optimizer.step() before lr_scheduler.step(). Failure to do this will result in PyTorch skipping the first value of the learning rate schedule. See more details at https://pytorch.org/docs/stable/optim.html#how-to-adjust-learning-rate warnings.warn("Detected call of lr_scheduler.step() before optimizer.step(). " 0it [00:00, ?it/s] INFO:OUTPUT_MODEL:====> Epoch: 2 0it [00:00, ?it/s] INFO:OUTPUT_MODEL:====> Epoch: 3 0it [00:00, ?it/s] INFO:OUTPUT_MODEL:====> Epoch: 4 0it [00:00, ?it/s] INFO:OUTPUT_MODEL:====> Epoch: 5 0it [00:00, ?it/s] INFO:OUTPUT_MODEL:====> Epoch: 6 0it [00:00, ?it/s] INFO:OUTPUT_MODEL:====> Epoch: 7 0it [00:00, ?it/s] INFO:OUTPUT_MODEL:====> Epoch: 8 0it [00:00, ?it/s] INFO:OUTPUT_MODEL:====> Epoch: 9 我不懂代码也没动别的东西啊 就是一直训练来着,最开始我训练成功了两次,之后再训练的时候就出现这个了,重新下载解压还是出现这个,请楼主帮忙看下什么问题 谢谢啦

YYuX-1145 commented 1 year ago

评论出了个和你一样的报错,他的数据全部跳过空跑了,先检查一下数据集和标注是不是正常?

yuelaizhe commented 1 year ago

数据集还是之前训练那个,标注是重新跑的。后来我反复测试了好多次 也用了不少别的数据跑,怕是误动或者解压出问题,我又重新下载重新解压了3次,每次都是出现这个。搞不懂我明明之前成功了两次,第三次也没有间隔啊,我是准备了5个要训练,1和2成功到第3个就不行了。

YYuX-1145 commented 1 year ago

数据集还是之前训练那个,标注是重新跑的。后来我反复测试了好多次 也用了不少别的数据跑,怕是误动或者解压出问题,我又重新下载重新解压了3次,每次都是出现这个。搞不懂我明明之前成功了两次,第三次也没有间隔啊,我是准备了5个要训练,1和2成功到第3个就不行了。

换了数据集是吗?检查一下有没有过长,双声道还有采样率不对的情况

yuelaizhe commented 1 year ago

过长肯定没有的,我是把1个小时左右的切成5-10秒一条,然后手动排查错误的 比如超过10秒的全部删掉,因为之前玩过别的vits有过长导致错误的,太短的也删掉。声道都是立体声,抽样率是什么啊,我的采样是44100的,位深度是16,波形音频16位整数。

yuelaizhe commented 1 year ago

感谢 楼主解答,我又用以前成功过那个数据跑了下,还是出现了这个。 头疼,感觉这个错误出现的莫名其妙的。

YYuX-1145 commented 1 year ago

过长肯定没有的,我是把1个小时左右的切成5-10秒一条,然后手动排查错误的 比如超过10秒的全部删掉,因为之前玩过别的vits有过长导致错误的,太短的也删掉。声道都是立体声,抽样率是什么啊,我的采样是44100的,位深度是16,波形音频16位整数。

声道应为单声道,还有看看list文件是不是正常?训练开始的时候有没有跳过?

yuelaizhe commented 1 year ago

我都转成单声道再试试

YYuX-1145 commented 1 year ago

我都转成单声道再试试

某些组件被安全软件误杀也可能导致奇怪的错误,如果是这样的话备份数据集,把整合包全删了再解压试试

yuelaizhe commented 1 year ago

WC,我转成单声道以后可以训练了,感谢感谢大老牛B。训练完后我把别数据都转成单声道再试试,有同样报错的兄弟可以借鉴借鉴。

YYuX-1145 commented 1 year ago

WC,我转成单声道以后可以训练了,感谢感谢大老牛B。训练完后我把别数据都转成单声道再试试,有同样报错的兄弟可以借鉴借鉴。

请问你是用内置的脚本转录文本了吗?我看了下它应该是会自动转单声道并重采样的

yuelaizhe commented 1 year ago

没有,不过我现在明白这个报错是什么原因造成了。说起来真是奇葩,先上结论 AU的锅。 下面是经历: 经过楼主的指点我把音源都转成了单声道,结果没问题可以训练了(这里转的是第一套,我一共有5套音源,第1 2套之前就训练完了,出错是第3套,之后是拿的1套测试找错)成功后我非常纳闷,因为之前训练1 2的时候是立体声并没有转单声道,是成功的。当时也没弄明白 就没管了 训练完后我测了测和之前的差不多,一点问题都没有。然后我把第3套也转成了单声道,这回训练竟然出错了。当时就蒙了 这是为什么呢?我马上又用第1套的单声道训练 还是报错,我又试了下第4套的单声道 也是报错。我想是不是立体声和单声道来回试几次有可能会成功,换第1套立体声测试报错,之后又用的第1套的单声道,竟然可以了。然后我训练了第4套,也没有问题。这时候我就确定了,第3套绝对有问题,但是问题出在哪呢?经过仔细对比 我发现只有第3套用AU转的格式,原本是mp3,1 2 4都没有原本就是wav,之后我又测试了下,果然是AU的问题,AU输出的wav训练就报错了。 这里说明下,原本不是wav用AU输出WAV报错,原本是WAV用AU输出不报错,我第1套转单声道就是AU输出的,而且其它的也用AU处理过,只不过进AU之前的格式不一样。 我用的是au2023版本的,只能说这版本可能有问题或者AU都存在这个问题。

YYuX-1145 commented 1 year ago

au2023批处理有时候确实会抽风,有一回处理好的几十条音频最后查出来有十来条出现异常了,比如说音频不完整甚至和其他音频混起来了,总之就是有bug