GPT-SoVITS
GPT-SoVITS copied to clipboard
训练SOVITS时报错
在进行到训练SOVITS时,前端页面显示训练完成,但SoVITS_weights文件夹中没有文件,点击查询后台,发现报错信息,显示CUDA OUT OF MEMORY,这样的问题如何解决?由于显卡配置比较低,N卡1050TI,4G显存,但内存有32G,可以共享显存15G,Batch size已经调整到2,Total epochs设置为8。报告如下,前面的操作都非常顺利,而且GPT 模型训练也通过了,求助大佬,看看能不能低显存运行。
Batch size 设置为1试试
4G显存首先只能batch size=1,然后可能每条语音的长度都必须限制得很短,具体你得自己试一下。关闭其他占用显存的程序,然后祈祷能跑。
以下是截选自gpt-sovits教程https://www.yuque.com/baicaigongchang1145haoyuangong/ib3g1e/xyyqrfwiu3e2bgyk的有关显存占用的测试截图
感谢大佬和大家的及时回复,今天调整了一下参数,训练跑通了,用了20多分钟的中英文混合样本(中文偏多,少量英文单词)进行训练,音色复刻的比较完美,中文朗读效果还行,但句和句之间的空白时间比较多,不够流畅,而且英文完全是一塌糊涂,单词发言完全读不准,而且生成的音频中它自己还会加词,加的内容听不清楚,感觉像乱码。仔细看了一下,好像加词的地方都是有标点的地方,英文发音不准和加词的这两个问题应该如何解决呢?还有开始给训练数据校对那个页面,好像拆分音频是不能使用的,勾选了长音频后面的YES,然后点分割音频,没有丝毫反应,这个是我的操作不对吗?还望大佬解答!以下是用训练好的模型生成的音频,供大佬参考。
https://github.com/RVC-Boss/GPT-SoVITS/assets/141059533/139daf85-c0c9-412b-8524-5fa9fc787761
-- Process 0 terminated with the following error: Traceback (most recent call last): File "D:\ProgramData\Anaconda\envs\sovits\lib\site-packages\torch\multiprocessing\spawn.py", line 69, in _wrap fn(i, *args) File "G:\GPT-SoVITS\Python3.9\GPT-SoVITS-beta0306fix2\GPT_SoVITS\s2_train.py", line 254, in run train_and_evaluate( File "G:\GPT-SoVITS\Python3.9\GPT-SoVITS-beta0306fix2\GPT_SoVITS\s2_train.py", line 387, in train_and_evaluate loss_fm = feature_loss(fmap_r, fmap_g) File "G:\GPT-SoVITS\Python3.9\GPT-SoVITS-beta0306fix2\GPT_SoVITS\module\losses.py", line 12, in feature_loss gl = gl.float() torch.cuda.OutOfMemoryError: CUDA out of memory. Tried to allocate 20.00 MiB (GPU 0; 12.00 GiB total capacity; 4.68 GiB already allocated; 6.08 GiB free; 4.82 GiB reserved in total by PyTorch) If reserved memory is >> allocated memory try setting max_split_size_mb to avoid fragmentation. See documentation for Memory Management and PYTORCH_CUDA_ALLOC_CONF,我会报这种错误,改batch_size也解决不了连续显存的问题,之前试过重启,大概相当于显存重置了,是可以解决的,但不可能每训练几次就重启吧。于是我在启动项上加了--force-fb16,免得它自动fb32,虽然不明白原理是什么,但好像暂时解决了这个问题。我的脚本是,@echo off call D:\ProgramData\Anaconda\Scripts\activate.bat sovits python -m pip install -r G:\GPT-SoVITS\Python3.9\GPT-SoVITS-beta0306fix2\requirements.txt python G:\GPT-SoVITS\Python3.9\GPT-SoVITS-beta0306fix2\webui.py --force-fp16 pause
-- Process 0 terminated with the following error: Traceback (most recent call last): File "D:\ProgramData\Anaconda\envs\sovits\lib\site-packages\torch\multiprocessing\spawn.py", line 69, in _wrap fn(i, *args) File "G:\GPT-SoVITS\Python3.9\GPT-SoVITS-beta0306fix2\GPT_SoVITS\s2_train.py", line 254, in run train_and_evaluate( File "G:\GPT-SoVITS\Python3.9\GPT-SoVITS-beta0306fix2\GPT_SoVITS\s2_train.py", line 387, in train_and_evaluate loss_fm = feature_loss(fmap_r, fmap_g) File "G:\GPT-SoVITS\Python3.9\GPT-SoVITS-beta0306fix2\GPT_SoVITS\module\losses.py", line 12, in feature_loss gl = gl.float() torch.cuda.OutOfMemoryError: CUDA out of memory. Tried to allocate 20.00 MiB (GPU 0; 12.00 GiB total capacity; 4.68 GiB already allocated; 6.08 GiB free; 4.82 GiB reserved in total by PyTorch) If reserved memory is >> allocated memory try setting max_split_size_mb to avoid fragmentation. See documentation for Memory Management and PYTORCH_CUDA_ALLOC_CONF,我会报这种错误,改batch_size也解决不了连续显存的问题,之前试过重启,大概相当于显存重置了,是可以解决的,但不可能每训练几次就重启吧。于是我在启动项上加了--force-fb16,免得它自动fb32,虽然不明白原理是什么,但好像暂时解决了这个问题。我的脚本是,@echo off call D:\ProgramData\Anaconda\Scripts\activate.bat sovits python -m pip install -r G:\GPT-SoVITS\Python3.9\GPT-SoVITS-beta0306fix2\requirements.txt python G:\GPT-SoVITS\Python3.9\GPT-SoVITS-beta0306fix2\webui.py --force-fp16 pause