Я тренировал простой GRU со слоем внимания, и теперь я пытаюсь визуализировать весы внимания (я их уже получил). Входные данные представляют собой 2 последовательности, закодированные в одну горячую строку (одна правильная, другая почти такая же, но имеет перестановки букв). Задача состоит в том, чтобы определить, какая из последовательностей является правильной. Вот мой NN:
optimizer = keras.optimizers.RMSprop()
max_features = 4 #number of words in the dictionary
num_classes = 2
model = keras.Sequential()
model.add(GRU(128, input_shape=(70, max_features), return_sequences=True, activation='tanh'))
model.add(Dropout(0.5))
atn_layer = model.add(SeqSelfAttention())
model.add(Flatten())
model.add(Dense(num_classes, activation='sigmoid'))
model.compile(loss='binary_crossentropy',
optimizer=optimizer,
metrics=['accuracy'])
Я пробовал несколько вещей, найденных в StackOverflow, но безуспешно. Дело в том, что я не понимаю, как соединить вес и вклад моего внимания. Буду признателен за любую помощь и предложения.