File size: 653 Bytes
94d74cd | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
import torch, torch.nn as nn
from vector_quantize_pytorch import ResidualVQ
class RVQWrapper(nn.Module):
def __init__(self, dim, num_quantizers, codebook_size):
super().__init__()
self.proj_in = nn.Linear(dim, dim, bias=True)
self.rvq = ResidualVQ(dim=dim, num_quantizers=num_quantizers, codebook_size=codebook_size)
self.proj_out = nn.Linear(dim, dim, bias=True)
self.register_buffer("ema_counts", torch.zeros(num_quantizers, codebook_size))
def forward(self, x):
x = self.proj_in(x)
y, indices, commit = self.rvq(x)
y = self.proj_out(y)
return y, indices, commit
|