Example #1
0
def AttentiveCNN_match(context,
                       query,
                       context_mask,
                       query_mask,
                       causality=False,
                       scope='AttentiveCNN_Block',
                       reuse=None,
                       **kwargs):
    with tf.variable_scope(scope, reuse=reuse):
        direction = 'forward' if causality else 'none'
        cnn_wo_att = CNN_encode(context,
                                filter_size=3,
                                direction=direction,
                                act_fn=None)
        att_context, _ = Attentive_match(context,
                                         query,
                                         context_mask,
                                         query_mask,
                                         causality=causality)
        cnn_att = CNN_encode(att_context,
                             filter_size=1,
                             direction=direction,
                             act_fn=None)
        output = tf.nn.tanh(cnn_wo_att + cnn_att)
        return dropout_res_layernorm(context, output, **kwargs)
Example #2
0
def Res_DualCNN_encode(seqs, use_spatial_dropout=True, scope='res_biconv_block', reuse=None, **kwargs):
    with tf.variable_scope(scope, reuse=reuse):
        out1 = CNN_encode(seqs, scope='first_conv1d', **kwargs)
        if use_spatial_dropout:
            out1 = spatial_dropout(out1)
        out2 = CNN_encode(out1, scope='second_conv1d', **kwargs)
        if use_spatial_dropout:
            out2 = CNN_encode(out2)
        return dropout_res_layernorm(seqs, out2, **kwargs)