Closed Subarasheese closed 1 year ago
Is this your private dataset? I suspect the lengths of the text might be less than minimum value or something like that. You can just copy the dataloader
part in a .ipynb
file and try to debug your data loading part . Load the hps from file using function in the utils.py
for the dataloader.
Or you can decrease the values of boundaries in DistributedBucketSampler and see what happens.
Is this your private dataset? I suspect the lengths of the text might be less than minimum value or something like that. You can just copy the
dataloader
part in a.ipynb
file and try to debug your data loading part . Load the hps from file using function in theutils.py
for the dataloader.
Yes, it is a custom dataset. My dataset looks normal, and the texts are pretty long. The code is erroring out after this line, not sure why as the error logs are not clear. What do I need to inspect to check what is wrong?
Or you can decrease the values of boundaries in DistributedBucketSampler and see what happens.
Where can I do that?
By the way, this is the config file I am using for training:
{
"train": {
"log_interval": 867,
"eval_interval": 867,
"seed": 1234,
"epochs": 20000,
"learning_rate": 2e-4,
"betas": [0.8, 0.99],
"eps": 1e-9,
"batch_size": 16,
"fp16_run": false,
"lr_decay": 0.999875,
"segment_size": 8192,
"init_lr_ratio": 1,
"warmup_epochs": 0,
"c_mel": 45,
"c_kl": 1.0
},
"data": {
"training_files":"filelists/train_voice_1_filelist_v4.txt",
"validation_files":"filelists/val_voice_1_filelist_v4.txt",
"text_cleaners":["basic_cleaners"],
"max_wav_value": 32768.0,
"sampling_rate": 22050,
"filter_length": 1024,
"hop_length": 256,
"win_length": 1024,
"n_mel_channels": 80,
"mel_fmin": 0.0,
"mel_fmax": null,
"add_blank": false,
"n_speakers": 0,
"cleaned_text": true,
"use_mel_spec_posterior": false
},
"model": {
"use_mel_posterior_encoder": false,
"use_transformer_flows": true,
"transformer_flow_type": "pre_conv",
"use_spk_conditioned_encoder": false,
"use_noise_scaled_mas": true,
"inter_channels": 192,
"hidden_channels": 192,
"filter_channels": 768,
"n_heads": 2,
"n_layers": 6,
"kernel_size": 3,
"p_dropout": 0.1,
"resblock": "1",
"resblock_kernel_sizes": [3,7,11],
"resblock_dilation_sizes": [[1,3,5], [1,3,5], [1,3,5]],
"upsample_rates": [8,8,2,2],
"upsample_initial_channel": 512,
"upsample_kernel_sizes": [16,16,4,4],
"n_layers_q": 3,
"use_spectral_norm": false
},
"max_text_len": 500
}
Hi all.
btw, can i turn off validation and test lists? i would be able to validate model myself. My dataset is not so large to throw away sentences to validations and tests
just pass in the same list to both train and validation. For the validation loader use torch.utils.data.Subset
and pass only 4-5 samples so that you can get the evaluation while training. If you want to completely turn off evaluation, just comment out evaluate()
function in train.py
.
and what about test.txt in filelists?
On 8/31/23, p0p @.***> wrote:
just pass in the same list to both train and validation. For the validation loader use
torch.utils.data.Subset
and pass only 4-5 samples so that you can get the evaluation while training. If you want to completely turn off evaluation, just comment outevaluate()
function intrain.py
.-- Reply to this email directly or view it on GitHub: https://github.com/p0p4k/vits2_pytorch/issues/33#issuecomment-1700469489 You are receiving this because you commented.
Message ID: @.***>
-- with best regards Beqa Gozalishvili Tell: +995593454005 Email: @.*** Web: https://gozaltech.org Skype: beqabeqa473 Telegram: https://t.me/gozaltech facebook: https://facebook.com/gozaltech twitter: https://twitter.com/beqabeqa473 Instagram: https://instagram.com/beqa.gozalishvili
Test is the evaluation in this repo.
so validations and tests is the same?
On 8/31/23, p0p @.***> wrote:
Test is the evaluation in this repo.
-- Reply to this email directly or view it on GitHub: https://github.com/p0p4k/vits2_pytorch/issues/33#issuecomment-1700509240 You are receiving this because you commented.
Message ID: @.***>
-- with best regards Beqa Gozalishvili Tell: +995593454005 Email: @.*** Web: https://gozaltech.org Skype: beqabeqa473 Telegram: https://t.me/gozaltech facebook: https://facebook.com/gozaltech twitter: https://twitter.com/beqabeqa473 Instagram: https://instagram.com/beqa.gozalishvili
Yes, we just send 2 lists in config. Train and val
No clue on what the problem might be?
What do you suggest me to do with the dataset?
Print out the "len_bucket" in data_utils and try to debug from there.
Print out the "len_bucket" in data_utils and try to debug from there.
Those were the outputs
buckets from line 371: 0 8 34
So the first bucket has length 0, the second has length 8, and the last has length 34
Is there anything wrong about it?
So bucket length 0 is causing the issue. Cannot divide by 0. You can just entirely disable this function the dataloader temporarily.
@p0p4k I managed to get the training working by making a few changes, including:
1 - skipping the "0" bucket in that for-loop to avoid the exception 2 - Editing the symbols file (non-English language) 3 - The mel_processing file had a bug, I needed to replace the mel attribution to this: mel = librosa_mel_fn(sr=sampling_rate, n_fft=n_fft, n_mels=num_mels, fmin=fmin, fmax=fmax)
And now it started training, but the bucket issue sure is strange and I believe it was not supposed to happen. If that is going to compromise the model, is something that has yet to be seen.
But I am going ahead and close the issue. Please, if you can, look into what this could be, or at least improve the log to make whatever the problem is clearer.
Greetings,
As seen on https://github.com/p0p4k/vits2_pytorch/pull/10#issuecomment-1682307529, someone successfully trained models, so I decided to try it myself.
I used the following command:
python train.py -c configs/vits2_voice_training.json -m mydataset
However, the following happens:
What could be the problem here, and what could I try doing to fix this?