5
5
from time import sleep
6
6
import torch , os , traceback , sys , warnings , shutil , numpy as np
7
7
import faiss
8
-
8
+ from random import shuffle
9
9
now_dir = os .getcwd ()
10
10
sys .path .append (now_dir )
11
11
tmp = os .path .join (now_dir , "TEMP" )
23
23
ncpu = cpu_count ()
24
24
ngpu = torch .cuda .device_count ()
25
25
gpu_infos = []
26
+ mem = []
26
27
if (not torch .cuda .is_available ()) or ngpu == 0 :
27
28
if_gpu_ok = False
28
29
else :
48
49
): # A10#A100#V100#A40#P40#M40#K80#A4500
49
50
if_gpu_ok = True # 至少有一张能用的N卡
50
51
gpu_infos .append ("%s\t %s" % (i , gpu_name ))
51
- gpu_info = (
52
- "\n " .join (gpu_infos )
53
- if if_gpu_ok == True and len (gpu_infos ) > 0
54
- else "很遗憾您这没有能用的显卡来支持您训练"
55
- )
52
+ mem .append (int (torch .cuda .get_device_properties (i ).total_memory / 1024 / 1024 / 1024 + 0.4 ))
53
+ if if_gpu_ok == True and len (gpu_infos ) > 0 :
54
+ gpu_info = "\n " .join (gpu_infos )
55
+ default_batch_size = min (mem )// 2
56
+ else :
57
+ gpu_info = "很遗憾您这没有能用的显卡来支持您训练"
58
+ default_batch_size = 1
56
59
gpus = "-" .join ([i [0 ] for i in gpu_infos ])
57
60
from infer_pack .models import SynthesizerTrnMs256NSFsid , SynthesizerTrnMs256NSFsid_nono
58
61
from scipy .io import wavfile
@@ -564,15 +567,18 @@ def click_train(
564
567
)
565
568
)
566
569
if if_f0_3 == "是" :
567
- opt .append (
568
- "%s/logs/mute/0_gt_wavs/mute%s.wav|%s/logs/mute/3_feature256/mute.npy|%s/logs/mute/2a_f0/mute.wav.npy|%s/logs/mute/2b-f0nsf/mute.wav.npy|%s"
569
- % (now_dir , sr2 , now_dir , now_dir , now_dir , spk_id5 )
570
- )
570
+ for _ in range (2 ):
571
+ opt .append (
572
+ "%s/logs/mute/0_gt_wavs/mute%s.wav|%s/logs/mute/3_feature256/mute.npy|%s/logs/mute/2a_f0/mute.wav.npy|%s/logs/mute/2b-f0nsf/mute.wav.npy|%s"
573
+ % (now_dir , sr2 , now_dir , now_dir , now_dir , spk_id5 )
574
+ )
571
575
else :
572
- opt .append (
573
- "%s/logs/mute/0_gt_wavs/mute%s.wav|%s/logs/mute/3_feature256/mute.npy|%s"
574
- % (now_dir , sr2 , now_dir , spk_id5 )
575
- )
576
+ for _ in range (2 ):
577
+ opt .append (
578
+ "%s/logs/mute/0_gt_wavs/mute%s.wav|%s/logs/mute/3_feature256/mute.npy|%s"
579
+ % (now_dir , sr2 , now_dir , spk_id5 )
580
+ )
581
+ shuffle (opt )
576
582
with open ("%s/filelist.txt" % exp_dir , "w" ) as f :
577
583
f .write ("\n " .join (opt ))
578
584
print ("write filelist done" )
@@ -789,15 +795,18 @@ def get_info_str(strr):
789
795
)
790
796
)
791
797
if if_f0_3 == "是" :
792
- opt .append (
793
- "%s/logs/mute/0_gt_wavs/mute%s.wav|%s/logs/mute/3_feature256/mute.npy|%s/logs/mute/2a_f0/mute.wav.npy|%s/logs/mute/2b-f0nsf/mute.wav.npy|%s"
794
- % (now_dir , sr2 , now_dir , now_dir , now_dir , spk_id5 )
795
- )
798
+ for _ in range (2 ):
799
+ opt .append (
800
+ "%s/logs/mute/0_gt_wavs/mute%s.wav|%s/logs/mute/3_feature256/mute.npy|%s/logs/mute/2a_f0/mute.wav.npy|%s/logs/mute/2b-f0nsf/mute.wav.npy|%s"
801
+ % (now_dir , sr2 , now_dir , now_dir , now_dir , spk_id5 )
802
+ )
796
803
else :
797
- opt .append (
798
- "%s/logs/mute/0_gt_wavs/mute%s.wav|%s/logs/mute/3_feature256/mute.npy|%s"
799
- % (now_dir , sr2 , now_dir , spk_id5 )
800
- )
804
+ for _ in range (2 ):
805
+ opt .append (
806
+ "%s/logs/mute/0_gt_wavs/mute%s.wav|%s/logs/mute/3_feature256/mute.npy|%s"
807
+ % (now_dir , sr2 , now_dir , spk_id5 )
808
+ )
809
+ shuffle (opt )
801
810
with open ("%s/filelist.txt" % exp_dir , "w" ) as f :
802
811
f .write ("\n " .join (opt ))
803
812
yield get_info_str ("write filelist done" )
@@ -1039,7 +1048,7 @@ def export_onnx(ModelPath, ExportedPath, MoeVS=True):
1039
1048
minimum = 0 ,
1040
1049
maximum = 1 ,
1041
1050
label = "检索特征占比" ,
1042
- value = 0.65 ,
1051
+ value = 0.76 ,
1043
1052
interactive = True ,
1044
1053
)
1045
1054
f0_file = gr .File (label = i18n ("F0曲线文件, 可选, 一行一个音高, 代替默认F0及升降调" ))
@@ -1253,10 +1262,10 @@ def export_onnx(ModelPath, ExportedPath, MoeVS=True):
1253
1262
)
1254
1263
batch_size12 = gr .Slider (
1255
1264
minimum = 0 ,
1256
- maximum = 32 ,
1265
+ maximum = 40 ,
1257
1266
step = 1 ,
1258
1267
label = "每张显卡的batch_size" ,
1259
- value = 4 ,
1268
+ value = default_batch_size ,
1260
1269
interactive = True ,
1261
1270
)
1262
1271
if_save_latest13 = gr .Radio (
@@ -1270,7 +1279,7 @@ def export_onnx(ModelPath, ExportedPath, MoeVS=True):
1270
1279
"是否缓存所有训练集至显存. 10min以下小数据可缓存以加速训练, 大数据缓存会炸显存也加不了多少速"
1271
1280
),
1272
1281
choices = ["是" , "否" ],
1273
- value = "是 " ,
1282
+ value = "否 " ,
1274
1283
interactive = True ,
1275
1284
)
1276
1285
with gr .Row ():
0 commit comments