一种具有可变长度输入的热编码

时间:2019-02-25 23:00:57

标签: python encoding keras one-hot-encoding

我很难对可变长度的序列进行一次热编码。我有一本包含21个字符的字典,我希望所有输出都具有尺寸(长度为21)。目前,我列出了大约4000个已被标记化(即它们都是数字)的可变长度序列。

现在的问题是,由于元素的大小不同,我无法在长度为4000的列表上调用keras.utils.to_categorical函数。为了克服这个问题,尝试将它们明智地转换为一个热编码元素。

问题是我得到各种次要尺寸,即我得到(length,20),(length,18),等等。有什么想法吗?这是不完整的代码,仅供参考。 (train_aa_seq是长度为4000的列表)。

tokenizer = Tokenizer(char_level = True)
tokenizer.fit_on_texts(train_aa_seq)
X_train = tokenizer.texts_to_sequences(train_aa_seq)
X_train_ERROR = to_categorical(X_train) ##THIS WONT WORK
# X_train = X_train = sequence.pad_sequences(X_train, maxlen = maxlen, padding = 'post')
for i in range(len(X_train)):
    X_train_example = to_categorical(X_train[i])
    print(X_train_example.shape)
    # WORKS BUT WRONG SECOND DIMENSION

0 个答案:

没有答案