vector-quantize-pytorch 1.22.6__tar.gz → 1.22.9__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (32) hide show
  1. {vector_quantize_pytorch-1.22.6 → vector_quantize_pytorch-1.22.9}/PKG-INFO +1 -1
  2. {vector_quantize_pytorch-1.22.6 → vector_quantize_pytorch-1.22.9}/pyproject.toml +1 -1
  3. {vector_quantize_pytorch-1.22.6 → vector_quantize_pytorch-1.22.9}/vector_quantize_pytorch/finite_scalar_quantization.py +8 -28
  4. {vector_quantize_pytorch-1.22.6 → vector_quantize_pytorch-1.22.9}/.github/workflows/build.yml +0 -0
  5. {vector_quantize_pytorch-1.22.6 → vector_quantize_pytorch-1.22.9}/.github/workflows/python-publish.yml +0 -0
  6. {vector_quantize_pytorch-1.22.6 → vector_quantize_pytorch-1.22.9}/.github/workflows/test.yml +0 -0
  7. {vector_quantize_pytorch-1.22.6 → vector_quantize_pytorch-1.22.9}/.gitignore +0 -0
  8. {vector_quantize_pytorch-1.22.6 → vector_quantize_pytorch-1.22.9}/LICENSE +0 -0
  9. {vector_quantize_pytorch-1.22.6 → vector_quantize_pytorch-1.22.9}/README.md +0 -0
  10. {vector_quantize_pytorch-1.22.6 → vector_quantize_pytorch-1.22.9}/examples/autoencoder.py +0 -0
  11. {vector_quantize_pytorch-1.22.6 → vector_quantize_pytorch-1.22.9}/examples/autoencoder_fsq.py +0 -0
  12. {vector_quantize_pytorch-1.22.6 → vector_quantize_pytorch-1.22.9}/examples/autoencoder_lfq.py +0 -0
  13. {vector_quantize_pytorch-1.22.6 → vector_quantize_pytorch-1.22.9}/examples/autoencoder_sim_vq.py +0 -0
  14. {vector_quantize_pytorch-1.22.6 → vector_quantize_pytorch-1.22.9}/images/fsq.png +0 -0
  15. {vector_quantize_pytorch-1.22.6 → vector_quantize_pytorch-1.22.9}/images/lfq.png +0 -0
  16. {vector_quantize_pytorch-1.22.6 → vector_quantize_pytorch-1.22.9}/images/simvq.png +0 -0
  17. {vector_quantize_pytorch-1.22.6 → vector_quantize_pytorch-1.22.9}/images/vq.png +0 -0
  18. {vector_quantize_pytorch-1.22.6 → vector_quantize_pytorch-1.22.9}/ruff.toml +0 -0
  19. {vector_quantize_pytorch-1.22.6 → vector_quantize_pytorch-1.22.9}/tests/test_latent_quantization.py +0 -0
  20. {vector_quantize_pytorch-1.22.6 → vector_quantize_pytorch-1.22.9}/tests/test_lfq.py +0 -0
  21. {vector_quantize_pytorch-1.22.6 → vector_quantize_pytorch-1.22.9}/tests/test_readme.py +0 -0
  22. {vector_quantize_pytorch-1.22.6 → vector_quantize_pytorch-1.22.9}/vector_quantize_pytorch/__init__.py +0 -0
  23. {vector_quantize_pytorch-1.22.6 → vector_quantize_pytorch-1.22.9}/vector_quantize_pytorch/latent_quantization.py +0 -0
  24. {vector_quantize_pytorch-1.22.6 → vector_quantize_pytorch-1.22.9}/vector_quantize_pytorch/lookup_free_quantization.py +0 -0
  25. {vector_quantize_pytorch-1.22.6 → vector_quantize_pytorch-1.22.9}/vector_quantize_pytorch/random_projection_quantizer.py +0 -0
  26. {vector_quantize_pytorch-1.22.6 → vector_quantize_pytorch-1.22.9}/vector_quantize_pytorch/residual_fsq.py +0 -0
  27. {vector_quantize_pytorch-1.22.6 → vector_quantize_pytorch-1.22.9}/vector_quantize_pytorch/residual_lfq.py +0 -0
  28. {vector_quantize_pytorch-1.22.6 → vector_quantize_pytorch-1.22.9}/vector_quantize_pytorch/residual_sim_vq.py +0 -0
  29. {vector_quantize_pytorch-1.22.6 → vector_quantize_pytorch-1.22.9}/vector_quantize_pytorch/residual_vq.py +0 -0
  30. {vector_quantize_pytorch-1.22.6 → vector_quantize_pytorch-1.22.9}/vector_quantize_pytorch/sim_vq.py +0 -0
  31. {vector_quantize_pytorch-1.22.6 → vector_quantize_pytorch-1.22.9}/vector_quantize_pytorch/utils.py +0 -0
  32. {vector_quantize_pytorch-1.22.6 → vector_quantize_pytorch-1.22.9}/vector_quantize_pytorch/vector_quantize_pytorch.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: vector-quantize-pytorch
3
- Version: 1.22.6
3
+ Version: 1.22.9
4
4
  Summary: Vector Quantization - Pytorch
5
5
  Project-URL: Homepage, https://pypi.org/project/vector-quantize-pytorch/
6
6
  Project-URL: Repository, https://github.com/lucidrains/vector-quantizer-pytorch
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "vector-quantize-pytorch"
3
- version = "1.22.6"
3
+ version = "1.22.9"
4
4
  description = "Vector Quantization - Pytorch"
5
5
  authors = [
6
6
  { name = "Phil Wang", email = "lucidrains@gmail.com" }
@@ -138,38 +138,18 @@ class FSQ(Module):
138
138
  def quantize(self, z):
139
139
  """ Quantizes z, returns quantized zhat, same shape as z. """
140
140
 
141
- preserve_symmetry = self.preserve_symmetry
142
- half_width = self._levels // 2
143
-
144
- if preserve_symmetry:
145
- quantized = round_ste(self.symmetry_preserving_bound(z)) / half_width
146
- else:
147
- quantized = round_ste(self.bound(z)) / half_width
148
-
149
- if not self.training:
150
- return quantized
151
-
152
- batch, device, noise_dropout = z.shape[0], z.device, self.noise_dropout
153
- unquantized = z
154
-
155
- # determine where to quantize elementwise
156
-
157
- quantize_mask = torch.bernoulli(
158
- torch.full((batch,), noise_dropout, device = device)
159
- ).bool()
160
-
161
- quantized = einx.where('b, b ..., b ...', quantize_mask, unquantized, quantized)
141
+ shape, device, noise_dropout, preserve_symmetry, half_width = z.shape[0], z.device, self.noise_dropout, self.preserve_symmetry, (self._levels // 2)
142
+ bound_fn = self.symmetry_preserving_bound if preserve_symmetry else self.bound
162
143
 
163
144
  # determine where to add a random offset elementwise
145
+ # if using noise dropout
164
146
 
165
- offset_mask = torch.bernoulli(
166
- torch.full((batch,), noise_dropout, device = device)
167
- ).bool()
168
-
169
- offset = (torch.rand_like(z) - 0.5) / half_width
170
- quantized = einx.where('b, b ..., b ...', offset_mask, unquantized + offset, quantized)
147
+ if self.training and noise_dropout > 0.:
148
+ offset_mask = torch.bernoulli(torch.full_like(z, noise_dropout)).bool()
149
+ offset = torch.rand_like(z) - 0.5
150
+ z = torch.where(offset_mask, z + offset, z)
171
151
 
172
- return quantized
152
+ return round_ste(bound_fn(z)) / half_width
173
153
 
174
154
  def _scale_and_shift(self, zhat_normalized):
175
155
  half_width = self._levels // 2