Exemplo n.º 1
0
def create_word_encoder(config):
    encoder = BidirectionalEncoder(config['src_vocab_size'],
                                   config['enc_embed'], config['enc_nhids'])
    encoder.weights_init = IsotropicGaussian(config['weight_scale'])
    encoder.biases_init = Constant(0)
    encoder.push_initialization_config()
    encoder.bidir.prototype.weights_init = Orthogonal()
    encoder.initialize()

    input_words = tensor.lmatrix('words')
    input_words_mask = tensor.matrix('words_mask')
    training_representation = encoder.apply(input_words, input_words_mask)
    training_representation.name = "words_representation"

    sampling_input_words = tensor.lmatrix('sampling_words')
    sampling_input_words_mask = tensor.ones(
        (sampling_input_words.shape[0], sampling_input_words.shape[1]))
    sampling_representation = encoder.apply(sampling_input_words,
                                            sampling_input_words_mask)

    return encoder, training_representation, sampling_representation