x-transformers 2.2.2__py3-none-any.whl → 2.2.4__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.
@@ -9,7 +9,7 @@ from torch.nn.utils.rnn import pad_sequence
9
9
  from x_transformers.x_transformers import Decoder, TransformerWrapper
10
10
 
11
11
  import einx
12
- from einops import repeat, rearrange
12
+ from einops import repeat, rearrange, pack, unpack
13
13
 
14
14
  # helper functions
15
15
 
@@ -39,10 +39,13 @@ class EntropyBasedTokenizer(Module):
39
39
  @torch.no_grad()
40
40
  def forward(
41
41
  self,
42
- seq,
43
- lens = None, # Int['b']
42
+ seq, # Float['b n'] | Float['n']
43
+ lens = None, # Int['b']
44
44
  return_segmented_seq = False
45
45
  ):
46
+ no_batch_dim = seq.ndim == 1
47
+ seq, maybe_batch_ps = pack((seq,), '* n')
48
+
46
49
  self.decoder.eval()
47
50
 
48
51
  is_var_length = exists(lens)
@@ -89,15 +92,15 @@ class EntropyBasedTokenizer(Module):
89
92
 
90
93
  num_tokens = boundaries.sum(dim = -1) # number of tokens
91
94
 
92
- boundaries = arange_plus_one[boundaries].split(num_tokens.tolist())
95
+ indices = arange_plus_one[boundaries].split(num_tokens.tolist())
93
96
 
94
97
  # get the token lengths
95
98
 
96
99
  token_lengths = []
97
100
 
98
- for one_boundary in boundaries:
99
- padded_boundary = F.pad(one_boundary, (1, 0), value = 0.)
100
- one_token_lengths = padded_boundary[1:] - padded_boundary[:-1]
101
+ for one_indices in indices:
102
+ padded_indices = F.pad(one_indices, (1, 0), value = 0.)
103
+ one_token_lengths = padded_indices[1:] - padded_indices[:-1]
101
104
 
102
105
  token_lengths.append(one_token_lengths)
103
106
 
@@ -106,6 +109,8 @@ class EntropyBasedTokenizer(Module):
106
109
  # early return
107
110
 
108
111
  if not return_segmented_seq:
112
+ token_lengths, = unpack(token_lengths, maybe_batch_ps, '* num_tokens')
113
+
109
114
  return token_lengths
110
115
 
111
116
  # segment the sequence based on the token lengths
@@ -120,8 +125,10 @@ class EntropyBasedTokenizer(Module):
120
125
 
121
126
  one_token_length = one_token_length[one_token_length > 0]
122
127
 
123
- print(one_seq.shape, one_token_length)
124
128
  splitted_seq = one_seq.split(one_token_length.tolist())
125
129
  segmented_seq.append(splitted_seq)
126
130
 
131
+ if no_batch_dim:
132
+ segmented_seq = segmented_seq[0]
133
+
127
134
  return segmented_seq
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: x-transformers
3
- Version: 2.2.2
3
+ Version: 2.2.4
4
4
  Summary: X-Transformers
5
5
  Project-URL: Homepage, https://pypi.org/project/x-transformers/
6
6
  Project-URL: Repository, https://github.com/lucidrains/x-transformers
@@ -4,14 +4,14 @@ x_transformers/autoregressive_wrapper.py,sha256=reLCno9Z9pchVU79tBF8OMo21LwSZ67K
4
4
  x_transformers/belief_state_wrapper.py,sha256=YLUMk6t2MhFBEw5lHDDHJHcoCxTIkHvxTNY__GGZEKU,13374
5
5
  x_transformers/continuous.py,sha256=p0sCAiH1na236ygwgL1Yyhu36eZBf9cZvoW1JyP_fFE,7073
6
6
  x_transformers/dpo.py,sha256=xt4OuOWhU8pN3OKN2LZAaC2NC8iiEnchqqcrPWVqf0o,3521
7
- x_transformers/entropy_based_tokenizer.py,sha256=hdYfw8GqMj0YVWY_gpaCCzhkMALnQB9yAUaCg8RWMss,3624
7
+ x_transformers/entropy_based_tokenizer.py,sha256=Ac73rJaYL1_lW9VnIZOh7zwJ-n0S96EEOj27pwGMbts,3861
8
8
  x_transformers/multi_input.py,sha256=tCh-fTJDj2ib4SMGtsa-AM8MxKzJAQSwqAXOu3HU2mg,9252
9
9
  x_transformers/neo_mlp.py,sha256=XCNnnop9WLarcxap1kGuYc1x8GHvwkZiDRnXOxSl3Po,3452
10
10
  x_transformers/nonautoregressive_wrapper.py,sha256=2NU58hYMgn-4Jzg3mie-mXb0XH_dCN7fjlzd3K1rLUY,10510
11
11
  x_transformers/x_transformers.py,sha256=Fl2CuAKTxJDOQvqwQo2FK8eO2s1iNLO-P1PP2Yw64rQ,111826
12
12
  x_transformers/xl_autoregressive_wrapper.py,sha256=CvZMJ6A6PA-Y_bQAhnORwjJBSl6Vjq2IdW5KTdk8NI8,4195
13
13
  x_transformers/xval.py,sha256=7S00kCuab4tWQa-vf-z-XfzADjVj48MoFIr7VSIvttg,8575
14
- x_transformers-2.2.2.dist-info/METADATA,sha256=V0g-qeMS5RoayZAttx8bGdkIh0ZAsVmDDfTiPNI5qHM,88686
15
- x_transformers-2.2.2.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
16
- x_transformers-2.2.2.dist-info/licenses/LICENSE,sha256=As9u198X-U-vph5noInuUfqsAG2zX_oXPHDmdjwlPPY,1066
17
- x_transformers-2.2.2.dist-info/RECORD,,
14
+ x_transformers-2.2.4.dist-info/METADATA,sha256=N6Sc1vbIHKZXcLjCYRevlCAsbPE71L63Cg68N6gcYxU,88686
15
+ x_transformers-2.2.4.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
16
+ x_transformers-2.2.4.dist-info/licenses/LICENSE,sha256=As9u198X-U-vph5noInuUfqsAG2zX_oXPHDmdjwlPPY,1066
17
+ x_transformers-2.2.4.dist-info/RECORD,,