From 64fd59204c18c8f935831e39e213c6cbe7ef5576 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Eren=20G=C3=B6lge?= Date: Wed, 23 Jun 2021 13:45:59 +0200 Subject: [PATCH] Use `torch.linalg.qr` for pytorch > `v1.9.0` --- TTS/tts/layers/glow_tts/glow.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/TTS/tts/layers/glow_tts/glow.py b/TTS/tts/layers/glow_tts/glow.py index 18c491e3..7620ef88 100644 --- a/TTS/tts/layers/glow_tts/glow.py +++ b/TTS/tts/layers/glow_tts/glow.py @@ -1,3 +1,5 @@ +from distutils.version import LooseVersion + import torch from torch import nn from torch.nn import functional as F @@ -81,7 +83,11 @@ class InvConvNear(nn.Module): self.no_jacobian = no_jacobian self.weight_inv = None - w_init = torch.qr(torch.FloatTensor(self.num_splits, self.num_splits).normal_())[0] + if LooseVersion(torch.__version__) < LooseVersion("1.9"): + w_init = torch.qr(torch.FloatTensor(self.num_splits, self.num_splits).normal_())[0] + else: + w_init = torch.linalg.qr(torch.FloatTensor(self.num_splits, self.num_splits).normal_(), "complete")[0] + if torch.det(w_init) < 0: w_init[:, 0] = -1 * w_init[:, 0] self.weight = nn.Parameter(w_init)