В настоящее время я пытаюсь изучить влияние маскировки внимания на модель трансформатора, обученную классификации данных временных рядов. Моя модель работает до сих пор и дает мне производительность Okish, но когда я пытаюсь замаскировать внимание всех слоев мультиголовства в моей модели, производительность остается прежней, что вполне не то, что я ожидаю.
Моя модель (на основе учебника Keras): < /p>
def transformer_encoder(inputs:np.ndarray, head_size:int, num_heads:int, con_filters:int, attention_mask, dropout=0, seed=42):
x, att = layers.MultiHeadAttention(
key_dim=head_size, num_heads=num_heads, dropout=dropout, seed=seed)(inputs, inputs, attention_mask=tf.ones((sequence_size, sequence_size), dtype=bool), return_attention_scores=True ,training=True)
tf.print(att)
#print(f"output: {x}")
#x, _ = MultiHeadAttention(d_model=num_heads*5, num_heads=num_heads)(inputs, inputs, inputs, attention_mask)
print(x)
x = layers.Dropout(dropout, seed=seed)(x)
x = layers.LayerNormalization(epsilon=1e-6)(x)
res = x + inputs
x = layers.Conv1D(filters=con_filters, kernel_size=1, activation="relu")(res)
x = layers.Dropout(dropout, seed=seed)(x)
x = layers.Conv1D(filters=inputs.shape[-1], kernel_size=1)(x)
x = layers.LayerNormalization(epsilon=1e-6)(x)
return x + res
До сих пор я пытался передать маску с каждым вводом и маскируя все внимание с tf.zeros ((sequence_size, sequence_size), dytpe = bool . Я также Пытался изменить форму масок, но не повезло.
Кто -нибудь, кто знает ответ?
В настоящее время я пытаюсь изучить влияние маскировки внимания на модель трансформатора, обученную классификации данных временных рядов. Моя модель работает до сих пор и дает мне производительность Okish, но когда я пытаюсь замаскировать внимание всех слоев мультиголовства в моей модели, производительность остается прежней, что вполне не то, что я ожидаю. Моя модель (на основе учебника Keras): < /p> [code]def build(params: dict, input_shape:tuple) -> keras.Model:
for _ in range(encoder_blocks): x = transformer_encoder(x, head_size=sequence_size, num_heads=n_heads, con_filters=conv_filters, attention_mask=mask, dropout=encoder_dropout, seed=SEED) #x, _ = EncoderLayer(d_model=n_heads*5, num_heads= n_heads, dff=conv_filters, rate=encoder_dropout)(x, mask=mask)
x = layers.GlobalAveragePooling1D(data_format="channels_last")(x) x = layers.Dense(encolder_mlp, activation="relu")(x) x = layers.Dropout(mlp_dropout, seed=SEED)(x)
x, att = layers.MultiHeadAttention( key_dim=head_size, num_heads=num_heads, dropout=dropout, seed=seed)(inputs, inputs, attention_mask=tf.ones((sequence_size, sequence_size), dtype=bool), return_attention_scores=True ,training=True) tf.print(att) #print(f"output: {x}") #x, _ = MultiHeadAttention(d_model=num_heads*5, num_heads=num_heads)(inputs, inputs, inputs, attention_mask) print(x) x = layers.Dropout(dropout, seed=seed)(x) x = layers.LayerNormalization(epsilon=1e-6)(x) res = x + inputs
x = layers.Conv1D(filters=con_filters, kernel_size=1, activation="relu")(res) x = layers.Dropout(dropout, seed=seed)(x) x = layers.Conv1D(filters=inputs.shape[-1], kernel_size=1)(x) x = layers.LayerNormalization(epsilon=1e-6)(x)
return x + res [/code] До сих пор я пытался передать маску с каждым вводом и маскируя все внимание с tf.zeros ((sequence_size, sequence_size), dytpe = bool . Я также Пытался изменить форму масок, но не повезло. Кто -нибудь, кто знает ответ?
У меня есть 1-минутные данные временных рядов с столбцами событий и продолжительности. Иногда события не случаются какое -то время, но последнее событие заполняется вперед, пока не произойдет следующее событие. Мы знаем, сколько минут каждые событие...
Я использую keras=3.7.0 и пытаюсь реализовать собственный блок Temporal Convolutional Attention Network (TCAN). Хотя уровень внимания работает в автономном тестовом примере, я столкнулся с проблемой при его интеграции в мою пользовательскую модель....
В настоящее время я работаю над проектом, в котором мне нужно сначала объединить два набора данных:
Первый набор данных содержит данные о погоде с 30-минутными интервалами. Второй набор данных содержит данные минутного уровня с фотоэлектрическим...
В настоящее время я работаю над проектом, в котором мне нужно сначала объединить два набора данных:
Первый набор данных содержит данные о погоде с 30-минутными интервалами. Второй набор данных содержит данные минутного уровня с фотоэлектрическим...