это возможность дополнить массив чисел с плавающей запятой разной длины нулями
, чтобы замаскировать нули, вы можете использовать маскирующий слой (в противном случае удалите его)
Я инициализирую ваши вложения в список, потому что numpy не может обрабатывать массивы разной длины. в этом примере я использую 4 образца разной длины. относительные вложения хранятся в этом списке list ([1,300], [2300], [3,300], [4,300])
# recreate your embed
emb = []
for i in range(1,5):
emb.append(np.random.uniform(0,1, (i,300)))
# custom padding function
def pad(x, max_len):
new_x = np.zeros((max_len,x.shape[-1]))
new_x[:len(x),:] = x # post padding
return new_x
# pad own embeddings
emb = np.stack(list(map(lambda x: pad(x, max_len=100), emb)))
emb_model = tf.keras.Sequential()
emb_model.add(tf.keras.layers.Masking(mask_value=0., input_shape=(100, 300)))
emb_model.add(tf.keras.layers.LSTM(32))
emb_model(emb)