Beispiel #1
0
def build_baseline_newatt(dataset, num_hid):
    w_emb = WordEmbedding(dataset.dictionary.ntoken, 300, 0.0)
    q_emb = QuestionEmbedding(300, num_hid, 1, False, 0.0)
    v_att = NewAttention(dataset.v_dim, q_emb.num_hid, num_hid)
    q_net = FCNet([num_hid, num_hid])
    v_net = FCNet([dataset.v_dim, num_hid])
    fusion = FCNet([num_hid, num_hid * 2], dropout=0.5)
    return BaseModel(w_emb, q_emb, v_att, q_net, v_net, fusion, num_hid,
                     dataset.num_ans_candidates)
Beispiel #2
0
def build_baseline_newatt(dataset, num_hid):
    w_emb = WordEmbedding(dataset.dictionary.ntoken, 300, 0.0)
    q_emb = QuestionEmbedding(300, num_hid, 1, False, 0.0)
    v_att = NewAttention(dataset.v_dim, q_emb.num_hid, num_hid)
    q_net = FCNet([num_hid, num_hid])
    v_net = FCNet([dataset.v_dim, num_hid])
    a_mask = AnswerMask(num_hid, dataset.num_ans_candidates)
    classifier = SimpleClassifier(num_hid, num_hid * 2,
                                  dataset.num_ans_candidates, 0.5)
    return BaseModel(w_emb, q_emb, v_att, q_net, v_net, classifier, a_mask)
Beispiel #3
0
 def __init__(self, v_dim, q_dim, num_hid):
     super(Attention, self).__init__()
     self.nonlinear = FCNet([v_dim + q_dim, num_hid])
     self.linear = weight_norm(nn.Linear(num_hid, 1), dim=None)
Beispiel #4
0
 def __init__(self, v_dim, q_dim, num_hid, dropout=0.2):
     super(NewAttention, self).__init__()
     self.v_proj = FCNet([v_dim, num_hid])
     self.q_proj = FCNet([q_dim, num_hid])
     self.dropout = nn.Dropout(dropout)
     self.linear = weight_norm(nn.Linear(q_dim, 1), dim=None)