как соеденить слой эмбединга с LSTM

Кто в силах помочь, мб кто знает работает вплотную с тф. На вход идет матрица к примеру:

[[1, 2, 3, 4],
 [4, 5, 6, 1],
 [3, 4, 1, 2]] 

Её отправляю в эмбеддинг и все нормально обрабатывается. но хочу результат работы ембеддинга отправить в LSTM. т.е. у нас в массиве два массива как два временных шага для рекурентной сети. Я хочу реализовать так что модель принимает этот вход, разбивает его на три матрицы соответственно:

[[1, 2, 3, 4]]

[[4, 5, 6, 1]]

[[3, 4, 1, 2]]

Прогоняет их через ембединги получая другое векторное представление массива. И подать эти два ембединга в LSTM как последовательность из двух массивов.

Вот рабочий пример:

layer_i_inp = Input(shape = (3,4))

layer_i_emb = Embedding(output_dim = EMBEDDING_DIM,
                          input_dim = 6 + 1,
                          input_length = (3,4))(layer_i_inp) 

layer_i_reshape = Reshape([3,4, EMBEDDING_DIM])(layer_i_emb)
layer_i_reshape = Flatten()(layer_i_reshape)
output = Dense(targets_train.shape[1], activation = 'sigmoid')(layer_i_reshape)

Хочу изменить его так попробовать выводы эмбединга сделать так же массивами одиночными и чтоб lstm слой их принял:

layer_inp = Input(shape = (3,4))

layer_emb_1 = Embedding(output_dim = EMBEDDING_DIM,
                          input_dim = 6 + 1,
                          input_length = (4))(layer_inp[:, 0, :]) 
layer_emb_2 = Embedding(output_dim = EMBEDDING_DIM,
                          input_dim = 6 + 1,
                          input_length = (4))(layer_inp[:, 1, :]) 
layer_emb_3 = Embedding(output_dim = EMBEDDING_DIM,
                          input_dim = 6 + 1,
                          input_length = (4))(layer_inp[:, 2, :]) 

layer_con = LSTM(MAX_FEATURES)([layer_emb_1, layer_emb_2, layer_emb_3])

layer_reshape = Flatten()(layer_i_reshape)
output = Dense(targets_train.shape[1], activation = 'sigmoid')(layer_reshape)

меняю характеристики, пытаюсь заатачить. не получается и мало работал с tf матрицами внутри модели А отдельно массив подобной формы просто принимает LSTM, значит наверно и после эмбединга как то возможно скомпоновать так данные. вот это тоже например работает

layer_f_inp = Input(shape = (3,168), name = 'feature')

layer_f_emb = LSTM(MAX_FEATURES*32, return_sequences = True)(layer_f_inp)
layer_f_emb = LSTM(MAX_FEATURES*32, return_sequences = True)(layer_f_emb)
layer_f_emb = LSTM(MAX_FEATURES*32)(layer_f_emb)

Ответы (0 шт):