我的主管让我为CNN(应用于文本)实现一个注意层,但我很确定它对ConvD1层不起作用
使用Keras
我有一个非常简单的模型,后面是一个嵌入层,后面是一个卷积层
因为ConvD1
的输入是(#documents, words, embedding_size)
,后面是一个MaxPooling层,所以我考虑删除max pool并在这里插入注意,但我真的不知道在这种情况下我的查询和值输入是什么
我知道tf.backend有一个注意层,但是可以在这里应用它吗?还是我需要某种自我关注
我需要的是,看看哪些“词”是(最)负责相应的分类
sequence_input = Input(shape=(MAX_SEQUENCE_LENGTH,), dtype='int32')
embedded_sequences = embedding_layer(sequence_input)
conv1 = Conv1D(filters=2, kernel_size=2, padding='same')(embedded_sequences)
conv1 = MaxPooling1D(pool_size=32)(conv1)
conv1 = Dropout(0.2)(conv1)
x = Dense(50, activation="relu",
kernel_regularizer=regularizers.l2(0.01),
bias_regularizer=regularizers.l2(0.01))(conv1)
x = Dropout(0.3)(x)
preds = Dense(1, activation='sigmoid',name='output')(x)
model = Model(sequence_input, preds)
model.compile(loss='binary_crossentropy',
optimizer='adam',
metrics=[TruePositives(name='true_positives'),
TrueNegatives(name='true_negatives'),
FalseNegatives(name='false_negatives'),
FalsePositives(name='false_positives'),
])
目前没有回答
相关问题 更多 >
编程相关推荐