def __init__(self, config): super(HRED, self).__init__() self.config = config self.encoder = layers.EncoderRNN(config.vocab_size, config.embedding_size, config.encoder_hidden_size, config.rnn, config.num_layers, config.bidirectional, config.dropout) context_input_size = (config.num_layers * config.encoder_hidden_size * self.encoder.num_directions) self.context_encoder = layers.ContextRNN(context_input_size, config.context_size, config.rnn, config.num_layers, config.dropout) self.decoder = layers.DecoderRNN( config.vocab_size, config.embedding_size, config.decoder_hidden_size, config.rnncell, config.num_layers, config.dropout, config.word_drop, config.max_unroll, config.sample, config.temperature, config.beam_size) self.context2decoder = layers.FeedForward(config.context_size, config.num_layers * config.decoder_hidden_size, num_layers=1, activation=config.activation) if config.tie_embedding: self.decoder.embedding = self.encoder.embedding
def __init__(self, config): super(VHRED, self).__init__() self.config = config self.encoder = layers.EncoderRNN(config.vocab_size, config.embedding_size, config.encoder_hidden_size, config.rnn, config.num_layers, config.bidirectional, config.dropout, pretrained_wv_path=config.pretrained_wv_path) context_input_size = (config.num_layers * config.encoder_hidden_size * self.encoder.num_directions) self.context_encoder = layers.ContextRNN(context_input_size, config.context_size, config.rnn, config.num_layers, config.dropout) self.decoder = layers.DecoderRNN(config.vocab_size, config.embedding_size, config.decoder_hidden_size, config.rnncell, config.num_layers, config.dropout, config.word_drop, config.max_unroll, config.sample, config.temperature, config.beam_size) self.context2decoder = layers.FeedForward(config.context_size + config.z_utter_size, config.num_layers * config.decoder_hidden_size, num_layers=1, activation=config.activation) self.softplus = nn.Softplus() self.prior_h = layers.FeedForward(config.context_size, config.context_size, num_layers=2, hidden_size=config.context_size, activation=config.activation) self.prior_mu = nn.Linear(config.context_size, config.z_utter_size) self.prior_var = nn.Linear(config.context_size, config.z_utter_size) self.posterior_h = layers.FeedForward(config.encoder_hidden_size * self.encoder.num_directions * config.num_layers + config.context_size, config.context_size, num_layers=2, hidden_size=config.context_size, activation=config.activation) self.posterior_mu = nn.Linear(config.context_size, config.z_utter_size) self.posterior_var = nn.Linear(config.context_size, config.z_utter_size) if config.tie_embedding: self.decoder.embedding = self.encoder.embedding
def __init__(self, word_vectors, hidden_size, output_size, device, drop_prob=0., num_layers=1): super(Seq2Seq, self).__init__() self.hidden_size = hidden_size self.device = device self.word_vectors = word_vectors self.model_type = 'seq2seq' #self.emb = nn.Embedding(num_embeddings=output_size, embedding_dim=hidden_size) #self.dropout = nn.Dropout(p=drop_prob) self.emb = layers.Embedding(word_vectors, hidden_size, drop_prob=drop_prob) self.encoder = layers.EncoderRNN(input_size=hidden_size, hidden_size=hidden_size, num_layers=num_layers, drop_prob=drop_prob) self.decoder = layers.DecoderRNN(input_size=hidden_size, hidden_size=hidden_size, num_layers=num_layers, drop_prob=drop_prob) self.generator = layers.Generator(hidden_size, output_size)
def __init__(self, config): super(Seq2Seq, self).__init__() self.config = config self.encoder = layers.EncoderRNN(config.vocab_size, config.embedding_size, config.encoder_hidden_size, config.rnn, config.num_layers, False, config.dropout) self.decoder = layers.DecoderRNN( config.vocab_size, config.embedding_size, config.decoder_hidden_size, config.rnncell, config.num_layers, config.dropout, config.word_drop, config.max_unroll, config.sample, config.temperature, config.beam_size) if config.tie_embedding: self.decoder.embedding = self.encoder.embedding
def __init__(self, word_vectors, hidden_size, output_size, device, drop_prob=0., num_layers=1): super(Seq2SeqAttn, self).__init__() self.hidden_size = hidden_size self.word_vectors = word_vectors self.device = device self.enc_hiddens = None self.enc_masks = None self.model_type = 'seq2seq_attn' #self.emb = nn.Embedding(num_embeddings=output_size, embedding_dim=hidden_size) self.emb = layers.Embedding(word_vectors, hidden_size) self.encoder = layers.EncoderRNN(input_size=hidden_size, hidden_size=hidden_size, num_layers=num_layers, drop_prob=drop_prob) self.decoder = layers.DecoderRNN(input_size=2 * hidden_size, hidden_size=hidden_size, num_layers=num_layers, drop_prob=drop_prob) self.att_projection = nn.Linear(in_features=2 * hidden_size, out_features=hidden_size, bias=False) self.combined_output_projection = nn.Linear(in_features=3 * hidden_size, out_features=hidden_size, bias=False) self.generator = layers.Generator(hidden_size, output_size) self.dropout = nn.Dropout(p=drop_prob)
def __init__(self, config): super(VHCR, self).__init__() self.config = config self.encoder = layers.EncoderRNN(config.vocab_size, config.embedding_size, config.encoder_hidden_size, config.rnn, config.num_layers, config.bidirectional, config.dropout) context_input_size = (config.num_layers * config.encoder_hidden_size * self.encoder.num_directions + config.z_conv_size) self.context_encoder = layers.ContextRNN(context_input_size, config.context_size, config.rnn, config.num_layers, config.dropout) self.unk_sent = nn.Parameter( torch.randn(context_input_size - config.z_conv_size)) self.z_conv2context = layers.FeedForward(config.z_conv_size, config.num_layers * config.context_size, num_layers=1, activation=config.activation) context_input_size = (config.num_layers * config.encoder_hidden_size * self.encoder.num_directions) self.context_inference = layers.ContextRNN(context_input_size, config.context_size, config.rnn, config.num_layers, config.dropout, bidirectional=True) self.decoder = layers.DecoderRNN( config.vocab_size, config.embedding_size, config.decoder_hidden_size, config.rnncell, config.num_layers, config.dropout, config.word_drop, config.max_unroll, config.sample, config.temperature, config.beam_size) self.context2decoder = layers.FeedForward( config.context_size + config.z_sent_size + config.z_conv_size, config.num_layers * config.decoder_hidden_size, num_layers=1, activation=config.activation) self.softplus = nn.Softplus() self.conv_posterior_h = layers.FeedForward( config.num_layers * self.context_inference.num_directions * config.context_size, config.context_size, num_layers=2, hidden_size=config.context_size, activation=config.activation) self.conv_posterior_mu = nn.Linear(config.context_size, config.z_conv_size) self.conv_posterior_var = nn.Linear(config.context_size, config.z_conv_size) self.sent_prior_h = layers.FeedForward(config.context_size + config.z_conv_size, config.context_size, num_layers=1, hidden_size=config.z_sent_size, activation=config.activation) self.sent_prior_mu = nn.Linear(config.context_size, config.z_sent_size) self.sent_prior_var = nn.Linear(config.context_size, config.z_sent_size) self.sent_posterior_h = layers.FeedForward( config.z_conv_size + config.encoder_hidden_size * self.encoder.num_directions * config.num_layers + config.context_size, config.context_size, num_layers=2, hidden_size=config.context_size, activation=config.activation) self.sent_posterior_mu = nn.Linear(config.context_size, config.z_sent_size) self.sent_posterior_var = nn.Linear(config.context_size, config.z_sent_size) if config.tie_embedding: self.decoder.embedding = self.encoder.embedding
def __init__(self, config): super(VHUCM, self).__init__() self.config = config # user embedding if config.pretrained_uv_path is None: self.user_embedding = nn.Embedding(config.user_size, config.embedding_size) self.user_embedding.weight.requires_grad = True else: with open(config.pretrained_uv_path, 'rb') as f: weight_tensor = to_var(torch.FloatTensor(pickle.load(f))) self.user_embedding = nn.Embedding.from_pretrained(weight_tensor, freeze=False) self.encoder = layers.EncoderRNN(config.vocab_size, config.embedding_size, config.encoder_hidden_size, config.rnn, config.num_layers, config.bidirectional, config.dropout, pretrained_wv_path=config.pretrained_wv_path) context_input_size = (config.num_layers * config.encoder_hidden_size * self.encoder.num_directions + config.z_conv_size + config.embedding_size) self.context_encoder = layers.ContextRNN(context_input_size, config.context_size, config.rnn, config.num_layers, config.dropout) self.unk_sent = nn.Parameter(torch.randn(context_input_size - (config.z_conv_size + config.embedding_size))) self.z_conv2context = layers.FeedForward(config.z_conv_size, config.num_layers * config.context_size, num_layers=1, activation=config.activation) context_input_size = (config.num_layers * config.encoder_hidden_size * self.encoder.num_directions) self.context_inference = layers.ContextRNN(context_input_size, config.context_size, config.rnn, config.num_layers, config.dropout, bidirectional=True) self.decoder = layers.DecoderRNN(config.vocab_size, config.embedding_size, config.decoder_hidden_size, config.rnncell, config.num_layers, config.dropout, config.word_drop, config.max_unroll, config.sample, config.temperature, config.beam_size) self.context2decoder = layers.FeedForward(config.context_size + config.z_sent_size + config.z_conv_size, config.num_layers * config.decoder_hidden_size, num_layers=1, activation=config.activation) self.softplus = nn.Softplus() self.conv_prior_h = layers.FeedForward(2*config.embedding_size, config.embedding_size, num_layers=1, hidden_size=config.z_conv_size, activation=config.activation) self.conv_prior_mu = nn.Linear(config.embedding_size, config.z_conv_size) self.conv_prior_var = nn.Linear(config.embedding_size, config.z_conv_size) self.conv_posterior_h = layers.FeedForward(config.num_layers * self.context_inference.num_directions * config.context_size + 2*config.embedding_size, config.context_size, num_layers=2, hidden_size=config.context_size, activation=config.activation) self.conv_posterior_mu = nn.Linear(config.context_size, config.z_conv_size) self.conv_posterior_var = nn.Linear(config.context_size, config.z_conv_size) self.sent_prior_h = layers.FeedForward(config.context_size + config.z_conv_size, config.context_size, num_layers=1, hidden_size=config.z_sent_size, activation=config.activation) self.sent_prior_mu = nn.Linear(config.context_size, config.z_sent_size) self.sent_prior_var = nn.Linear(config.context_size, config.z_sent_size) self.sent_posterior_h = layers.FeedForward(config.z_conv_size + config.encoder_hidden_size * self.encoder.num_directions * config.num_layers + config.context_size, config.context_size, num_layers=2, hidden_size=config.context_size, activation=config.activation) self.sent_posterior_mu = nn.Linear(config.context_size, config.z_sent_size) self.sent_posterior_var = nn.Linear(config.context_size, config.z_sent_size) if config.tie_embedding: self.decoder.embedding = self.encoder.embedding if config.bow: self.bow_h = layers.FeedForward(config.z_sent_size, config.decoder_hidden_size, num_layers=1, hidden_size=config.decoder_hidden_size, activation=config.activation) self.bow_predict = nn.Linear(config.decoder_hidden_size, config.vocab_size)