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.
- x_transformers/entropy_based_tokenizer.py +15 -8
- {x_transformers-2.2.2.dist-info → x_transformers-2.2.4.dist-info}/METADATA +1 -1
- {x_transformers-2.2.2.dist-info → x_transformers-2.2.4.dist-info}/RECORD +5 -5
- {x_transformers-2.2.2.dist-info → x_transformers-2.2.4.dist-info}/WHEEL +0 -0
- {x_transformers-2.2.2.dist-info → x_transformers-2.2.4.dist-info}/licenses/LICENSE +0 -0
@@ -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,
|
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
|
-
|
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
|
99
|
-
|
100
|
-
one_token_lengths =
|
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
|
@@ -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=
|
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.
|
15
|
-
x_transformers-2.2.
|
16
|
-
x_transformers-2.2.
|
17
|
-
x_transformers-2.2.
|
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,,
|
File without changes
|
File without changes
|