我很难对可变长度的序列进行一次热编码。我有一本包含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