making pocket tts compat with cuda generation (#132)
Co-authored-by: gabrieldemarmiesse <gabrieldemarmiesse@gmail.com>
This commit is contained in:
co-authored by
gabrieldemarmiesse
parent
2f6ac5605c
commit
a5da339972
@@ -85,8 +85,9 @@ class StreamingConv1d(StatefulModule):
|
|||||||
stride = self._stride
|
stride = self._stride
|
||||||
# Effective kernel size accounting for dilation.
|
# Effective kernel size accounting for dilation.
|
||||||
kernel = self._effective_kernel_size
|
kernel = self._effective_kernel_size
|
||||||
previous = torch.zeros(batch_size, self.conv.in_channels, kernel - stride)
|
device = self.conv.weight.device
|
||||||
first = torch.ones(batch_size, dtype=torch.bool)
|
previous = torch.zeros(batch_size, self.conv.in_channels, kernel - stride, device=device)
|
||||||
|
first = torch.ones(batch_size, dtype=torch.bool, device=device)
|
||||||
return dict(previous=previous, first=first)
|
return dict(previous=previous, first=first)
|
||||||
|
|
||||||
def forward(self, x, model_state: dict | None):
|
def forward(self, x, model_state: dict | None):
|
||||||
@@ -144,7 +145,8 @@ class StreamingConvTranspose1d(StatefulModule):
|
|||||||
def init_state(self, batch_size: int, sequence_length: int) -> dict[str, torch.Tensor]:
|
def init_state(self, batch_size: int, sequence_length: int) -> dict[str, torch.Tensor]:
|
||||||
K = self._kernel_size
|
K = self._kernel_size
|
||||||
S = self._stride
|
S = self._stride
|
||||||
return dict(partial=torch.zeros(batch_size, self.convtr.out_channels, K - S))
|
device = self.convtr.weight.device
|
||||||
|
return dict(partial=torch.zeros(batch_size, self.convtr.out_channels, K - S, device=device))
|
||||||
|
|
||||||
def forward(self, x, mimi_state: dict):
|
def forward(self, x, mimi_state: dict):
|
||||||
layer_state = self.get_state(mimi_state)["partial"]
|
layer_state = self.get_state(mimi_state)["partial"]
|
||||||
|
|||||||
@@ -79,9 +79,12 @@ class MimiStreamingMultiheadAttention(StatefulModule):
|
|||||||
dim_per_head = self.embed_dim // self.num_heads
|
dim_per_head = self.embed_dim // self.num_heads
|
||||||
|
|
||||||
state = {}
|
state = {}
|
||||||
state["offset"] = torch.zeros(batch_size, dtype=torch.long)
|
device = self.in_proj.weight.device
|
||||||
state["cache"] = torch.zeros((2, batch_size, self.num_heads, sequence_length, dim_per_head))
|
state["offset"] = torch.zeros(batch_size, dtype=torch.long, device=device)
|
||||||
state["end_offset"] = torch.zeros(batch_size, dtype=torch.long)
|
state["cache"] = torch.zeros(
|
||||||
|
(2, batch_size, self.num_heads, sequence_length, dim_per_head), device=device
|
||||||
|
)
|
||||||
|
state["end_offset"] = torch.zeros(batch_size, dtype=torch.long, device=device)
|
||||||
return state
|
return state
|
||||||
|
|
||||||
def increment_step(self, state, increment: int = 1):
|
def increment_step(self, state, increment: int = 1):
|
||||||
|
|||||||
Reference in New Issue
Block a user