titans-pytorch 0.3.0__py3-none-any.whl → 0.3.2__py3-none-any.whl

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.
@@ -36,10 +36,14 @@ class MemoryMLP(Module):
36
36
  def __init__(
37
37
  self,
38
38
  dim,
39
- depth
39
+ depth,
40
+ expansion_factor = 4.
40
41
  ):
41
42
  super().__init__()
42
- self.weights = ParameterList([Parameter(torch.randn(dim, dim)) for _ in range(depth)])
43
+ dim_hidden = int(dim * expansion_factor)
44
+ dims = (dim, *((dim_hidden,) * (depth - 1)), dim)
45
+
46
+ self.weights = ParameterList([Parameter(torch.randn(dim_in, dim_out)) for dim_in, dim_out in zip(dims[:-1], dims[1:])])
43
47
 
44
48
  self.ln = LayerNorm(dim)
45
49
 
@@ -299,7 +299,8 @@ class NeuralMemory(Module):
299
299
  accept_weight_residual = False,
300
300
  gated_transition = False,
301
301
  default_model_kwargs: dict = dict(
302
- depth = 2
302
+ depth = 2,
303
+ expansion_factor = 4.
303
304
  )
304
305
  ):
305
306
  super().__init__()
@@ -652,13 +653,14 @@ class NeuralMemory(Module):
652
653
  next_last_update = TensorDict()
653
654
  next_last_momentum = TensorDict()
654
655
 
655
- for (param_name, surprise), (_, last_update), (_, last_momentum) in zip(surprises.items(), past_last_update.items(), past_last_momentum.items()):
656
+ for (param_name, surprise), (_, last_update) in zip(surprises.items(), past_last_update.items()):
656
657
 
657
658
  update = surprise
658
659
 
659
660
  # derive momentum with associative scan - eq (10)
660
661
 
661
662
  if has_momentum:
663
+ last_momentum = past_last_momentum[param_name]
662
664
  update = self.assoc_scan(adaptive_momentum, surprise, prev = last_momentum) # momentum is S / surprise in the paper
663
665
  momentum = update
664
666
  next_last_momentum[param_name] = momentum[:, -1]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: titans-pytorch
3
- Version: 0.3.0
3
+ Version: 0.3.2
4
4
  Summary: Titans
5
5
  Project-URL: Homepage, https://pypi.org/project/titans-pytorch/
6
6
  Project-URL: Repository, https://github.com/lucidrains/titans-pytorch
@@ -0,0 +1,9 @@
1
+ titans_pytorch/__init__.py,sha256=Y3m_ZlpEqYwp-Md1ARhNGJxq8bQp8ty1o039nZOOJo0,276
2
+ titans_pytorch/associative_scan.py,sha256=Y-iYqmFuG-NoCKu6kgql1mhowXTeJfyawi3eUIXamp0,2650
3
+ titans_pytorch/mac_transformer.py,sha256=5rO4GQxSyFWWEc3pc3xNyG0sK5EXE7MmxKI-_kEMl2M,24941
4
+ titans_pytorch/memory_models.py,sha256=TJl7b9Rd5BP8aQXK8itap5YN3DyomUVxCRJDgPuRGBk,4843
5
+ titans_pytorch/neural_memory.py,sha256=QiEnHnZfQ8ptuXNVy4NZf9-XMbMOl2_1PT_YIG1GQBc,27739
6
+ titans_pytorch-0.3.2.dist-info/METADATA,sha256=Ar1OdcY09w-q3RlVKlxcgrtcVzZE6cRKqnjwQ4F-9Z8,6815
7
+ titans_pytorch-0.3.2.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
8
+ titans_pytorch-0.3.2.dist-info/licenses/LICENSE,sha256=1yCiA9b5nhslTavxPjsQAO-wpOnwJR9-l8LTVi7GJuk,1066
9
+ titans_pytorch-0.3.2.dist-info/RECORD,,
@@ -1,9 +0,0 @@
1
- titans_pytorch/__init__.py,sha256=Y3m_ZlpEqYwp-Md1ARhNGJxq8bQp8ty1o039nZOOJo0,276
2
- titans_pytorch/associative_scan.py,sha256=Y-iYqmFuG-NoCKu6kgql1mhowXTeJfyawi3eUIXamp0,2650
3
- titans_pytorch/mac_transformer.py,sha256=5rO4GQxSyFWWEc3pc3xNyG0sK5EXE7MmxKI-_kEMl2M,24941
4
- titans_pytorch/memory_models.py,sha256=Q9SAIyAbStF5Tz0EhvRbn3yAdE3nk3xKc1ndieIe714,4671
5
- titans_pytorch/neural_memory.py,sha256=NICWfFySGeduH4-Wgn6UavWl18pddIL1JrtpT_dhXDw,27689
6
- titans_pytorch-0.3.0.dist-info/METADATA,sha256=i-tiJAahxkvzYxHOWLiwP2z8DyEPq6mFgSQ_ThvpN9A,6815
7
- titans_pytorch-0.3.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
8
- titans_pytorch-0.3.0.dist-info/licenses/LICENSE,sha256=1yCiA9b5nhslTavxPjsQAO-wpOnwJR9-l8LTVi7GJuk,1066
9
- titans_pytorch-0.3.0.dist-info/RECORD,,