| 1234567891011121314151617181920 |
- import torch
- import torch.nn.functional as F
- def tpr_loss(disc_real_outputs, disc_generated_outputs, tau):
- loss = 0
- for dr, dg in zip(disc_real_outputs, disc_generated_outputs):
- m_DG = torch.median((dr - dg))
- L_rel = torch.mean((((dr - dg) - m_DG) ** 2)[dr < dg + m_DG])
- loss += tau - F.relu(tau - L_rel)
- return loss
- def mel_loss(real_speech, generated_speech, mel_transforms):
- loss = 0
- for transform in mel_transforms:
- mel_r = transform(real_speech)
- mel_g = transform(generated_speech)
- loss += F.l1_loss(mel_g, mel_r)
- return loss
|