fix(bigvgan-trainer): resolve device mismatch in _save_sample after offload
After the finally block, offload_to_cpu moves the vocoder to CPU while ref_mel stays on GPU. Fix: detect vocoder's current device via next(vocoder.parameters()).device and move ref_mel there before vocoding. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -182,8 +182,11 @@ class SelvaBigvganTrainer:
|
|||||||
def _save_sample(label):
|
def _save_sample(label):
|
||||||
"""Vocode the reference mel and save as .wav."""
|
"""Vocode the reference mel and save as .wav."""
|
||||||
try:
|
try:
|
||||||
|
# Vocoder may have been offloaded to CPU after training — match its device.
|
||||||
|
voc_device = next(vocoder.parameters()).device
|
||||||
|
mel = ref_mel.to(voc_device)
|
||||||
with torch.no_grad():
|
with torch.no_grad():
|
||||||
wav = vocoder(ref_mel) # [1, 1, T] or [1, T]
|
wav = vocoder(mel) # [1, 1, T] or [1, T]
|
||||||
if wav.dim() == 2:
|
if wav.dim() == 2:
|
||||||
wav = wav.unsqueeze(1)
|
wav = wav.unsqueeze(1)
|
||||||
wav = wav.float().cpu().clamp(-1, 1)
|
wav = wav.float().cpu().clamp(-1, 1)
|
||||||
|
|||||||
Reference in New Issue
Block a user