x-transformers 2.2.3__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 +11 -3
- {x_transformers-2.2.3.dist-info → x_transformers-2.2.4.dist-info}/METADATA +1 -1
- {x_transformers-2.2.3.dist-info → x_transformers-2.2.4.dist-info}/RECORD +5 -5
- {x_transformers-2.2.3.dist-info → x_transformers-2.2.4.dist-info}/WHEEL +0 -0
- {x_transformers-2.2.3.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)
|
@@ -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
|
@@ -123,4 +128,7 @@ class EntropyBasedTokenizer(Module):
|
|
123
128
|
splitted_seq = one_seq.split(one_token_length.tolist())
|
124
129
|
segmented_seq.append(splitted_seq)
|
125
130
|
|
131
|
+
if no_batch_dim:
|
132
|
+
segmented_seq = segmented_seq[0]
|
133
|
+
|
126
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
|