def __init__(self, image_feat_dim, ques_emb_dim, **kwargs): super(two_layer_elmt_multiply, self).__init__() self.Fa_image1 = nonlinear_layer(image_feat_dim, kwargs['hidden_size']) self.Fa_image2 = nonlinear_layer( kwargs['hidden_size'], kwargs['hidden_size']) self.Fa_txt1 = nonlinear_layer(ques_emb_dim, kwargs['hidden_size']) self.Fa_txt2 = nonlinear_layer( kwargs['hidden_size'], kwargs['hidden_size']) self.dropout = nn.Dropout(kwargs['dropout']) self.out_dim = kwargs['hidden_size']
def __init__(self, image_feat_dim, ques_emb_dim, **kwargs): super(two_layer_elmt_multiply, self).__init__() self.Fa_image1 = nonlinear_layer(image_feat_dim, kwargs["hidden_size"]) self.Fa_image2 = nonlinear_layer(kwargs["hidden_size"], kwargs["hidden_size"]) self.Fa_txt1 = nonlinear_layer(ques_emb_dim, kwargs["hidden_size"]) self.Fa_txt2 = nonlinear_layer(kwargs["hidden_size"], kwargs["hidden_size"]) self.dropout = nn.Dropout(kwargs["dropout"]) self.out_dim = kwargs["hidden_size"]
def __init__(self, image_feat_dim, txt_rnn_embeding_dim, hidden_size, dropout=0.2): super(project_attention, self).__init__() self.image_feat_dim = image_feat_dim self.txt_embeding_dim = txt_rnn_embeding_dim self.Fa_image = nonlinear_layer(image_feat_dim, hidden_size) self.Fa_txt = nonlinear_layer(txt_rnn_embeding_dim, hidden_size) self.dropout = nn.Dropout(dropout) self.lc = nn.Linear(hidden_size, 1)
def __init__(self, image_attention_model, question_embedding_models, classifier): super(top_down_bottom_up_model, self).__init__() self.image_attention_model = image_attention_model self.question_embedding_models = question_embedding_models self.classifier = classifier text_lstm_dim = sum( [q.text_out_dim for q in question_embedding_models]) joint_embedding_out_dim = classifier.input_dim image_feat_dim = image_attention_model.image_feat_dim self.nonLinear_question = nonlinear_layer(text_lstm_dim, joint_embedding_out_dim) self.nonLinear_image = nonlinear_layer(image_feat_dim, joint_embedding_out_dim)
def __init__(self, image_attention_model, question_embedding_models, classifier): super(top_down_bottom_up_model, self).__init__() self.image_attention_model = image_attention_model self.question_embedding_models = question_embedding_models self.classifier = classifier text_lstm_dim = sum( [q.text_out_dim for q in question_embedding_models]) joint_embedding_out_dim = classifier.input_dim image_feat_dim = image_attention_model.image_feat_dim self.nonLinear_question = nonlinear_layer( text_lstm_dim, joint_embedding_out_dim) self.nonLinear_image = nonlinear_layer( image_feat_dim, joint_embedding_out_dim)
def __init__(self, image_feat_dim, txt_rnn_embeding_dim, hidden_size): super(concatenate_attention, self).__init__() self.image_feat_dim = image_feat_dim self.txt_embeding_dim = txt_rnn_embeding_dim self.Fa = nonlinear_layer(image_feat_dim + txt_rnn_embeding_dim, hidden_size) self.lc = nn.Linear(hidden_size, 1)
def __init__(self, image_feat_dim, txt_rnn_embeding_dim, hidden_size): super(concatenate_attention, self).__init__() self.image_feat_dim = image_feat_dim self.txt_embeding_dim = txt_rnn_embeding_dim self.Fa = nonlinear_layer( image_feat_dim + txt_rnn_embeding_dim, hidden_size) self.lc = nn.Linear(hidden_size, 1)
def __init__(self, in_dim, out_dim, **kwargs): super(logit_classifier, self).__init__() input_dim = in_dim num_ans_candidates = out_dim txt_nonLinear_dim = kwargs['txt_hidden_dim'] image_nonLinear_dim = kwargs['img_hidden_dim'] self.f_o_text = nonlinear_layer(input_dim, txt_nonLinear_dim) self.f_o_image = nonlinear_layer(input_dim, image_nonLinear_dim) self.linear_text = nn.Linear(txt_nonLinear_dim, num_ans_candidates) self.linear_image = nn.Linear(image_nonLinear_dim, num_ans_candidates) if 'pretrained_image' in kwargs and \ kwargs['pretrained_text'] is not None: self.linear_text.weight.data.copy_( torch.from_numpy(kwargs['pretrained_text'])) if 'pretrained_image' in kwargs and \ kwargs['pretrained_image'] is not None: self.linear_image.weight.data.copy_( torch.from_numpy(kwargs['pretrained_image']))
def __init__(self, image_feat_dim, ques_emb_dim, **kwargs): super(non_linear_elmt_multiply, self).__init__() self.Fa_image = nonlinear_layer(image_feat_dim, kwargs['hidden_size']) self.Fa_txt = nonlinear_layer(ques_emb_dim, kwargs['hidden_size']) self.dropout = nn.Dropout(kwargs['dropout']) self.out_dim = kwargs['hidden_size']