Скажем, у меня есть два списка [0.1,0.2,0.3] и [0.233,0.112,0.05], и каждый i-й элемент (например, [0.1,0.233], [0.2,0.112], [0.3,0.05], т. Е. на) ВМЕСТЕ должен быть вход в LSTM. Я пробовал:
inp_a = Input(shape=(36,))
a = Embedding(9400, 250)(inp_a)
a = CuDNNLSTM(250)(a)
inp_b = Input(shape=(36,))
b = Embedding(951, 250)(inp_b)
b = CuDNNLSTM(250)(b)
x = Concatenate()([a, b])
x = Dense(9743)(x)
x = Activation('softmax')(x)
model = Model(inputs=[inp_a,inp_b], outputs=x)
opt = keras.optimizers.adam(lr=0.001)
model.compile(loss='binary_crossentropy', optimizer=opt,metrics=['accuracy'])
или
inp_a = Input(shape=(36,))
a = Embedding(9400, 250)(inp_a)
a = Flatten()(a)
inp_b = Input(shape=(36,))
b = Embedding(951, 250)(inp_b)
b = Flatten()(b)
x = Concatenate()([a, b])
x = Dropout(0.05)(x)
x = Reshape((1,18432))(x)
x = LSTM(256, dropout=0.2, recurrent_dropout=0.2) (x)
x = Activation('relu')(x)
x = Dropout(0.2)(x)
x = Dense(9743, kernel_initializer='he_normal')(x)
x = Activation('softmax')(x)
model = Model(inputs=[inp_a, inp_b], outputs=x)
opt = Adam(lr=0.001)
model.compile(loss='binary_crossentropy', optimizer=opt, metrics=['accuracy'])
Или есть лучший подход? Также выходы одинаковы независимо от входов. Как бороться с этим ..? Thankyou!