def learnable_wiq(context, question, question_mask, layer_dim):
"""Aligned question embedding. Same as in DRQA paper."""
question_enc = TimeDistributed(Dense(units=layer_dim, activation='relu'))(question)
context_enc = TimeDistributed(Dense(units=layer_dim, activation='relu'))(context)
question_enc = Lambda(lambda q: tf.transpose(q, [0, 2, 1]))(question_enc)
matrix = Lambda(lambda q: tf.matmul(q[0], q[1]))([context_enc, question_enc])
coefs = Lambda(lambda q: masked_softmax(matrix, question_mask, axis=2, expand=1))([matrix, question_mask])
aligned_question_enc = Lambda(lambda q: tf.matmul(q[0], q[1]))([coefs, question])
return(aligned_question_enc)
评论列表
文章目录