

Self.flatten_feature = feature_maps_number * pooling_out Self.roi_pool = ROIPooling(output_size=( 1, pooling_out)) Kernel_size=(kernal_length, word_embedding_dim), Self.regressor_fc = None return feature_dimĭef _init_( self, pos_loss_method= "smoothl1", lambd= 1.0, prevent_over_fitting_method= "l2_penalty"): super(RCNN, self)._init_() Nn.init.normal(self.regressor_fc.weight.data, 0, 0.001)

Self.regressor_fc = nn.Linear(_feat_dim(), 2 * num_class) Self.test_fc = None if self.with_regression: Nn.init.normal(pleteness_fc.weight.data, 0, 0.001) Nn.init.normal(self.activity_fc.weight.data, 0, 0.001) pleteness_fc = nn.Linear(_feat_dim(), num_class) Self.activity_fc = nn.Linear(_feat_dim(), num_class + 1) Self.stpp = StructuredTemporalPyramidPooling(feature_dim, True, configs=stpp_cfg) Setattr(self.base_model, self.base_model.last_layer_name, nn.Dropout(p=self.dropout)) Setattr(self.base_model, self.base_model.last_layer_name, Identity()) Parameters = ifilter( lambda p: p.requires_grad, self.parameters())ĭef _prepare_ssn( self, num_class, stpp_cfg):įeature_dim = getattr(self.base_model, self.base_model.last_layer_name).in_features #change init_hidden when you change this gru/lstm Self.q_indep_bilstm = nn.LSTM(input_size = config.emb_dim, hidden_size = config.hidden_dim, num_layers = config.num_layers, dropout= 0.6, bidirectional= True) u = nn.LSTM(input_size = 2*config.emb_dim + 2*config.hidden_dim, hidden_size = config.hidden_dim, num_layers = config.num_layers, dropout= 0.6, bidirectional= True) # since we are using q_align and p_emb as p_star we have input as 2*emb_dim # num_layers = 2 and dropout = 0.1 Self.hidden = self.init_hidden(config.num_layers, config.hidden_dim, config.batch_size)
Self.hidden_qindp = self.init_hidden(config.num_layers, config.hidden_dim, config.batch_size) # used for eq(10) plays the role of w_q self.w_q = nn.Linear(config.ff_dim, 1, bias= False) Self.w_a = nn.Linear(config.ff_dim, 1, bias= False) Self.p_start_ff = nn.Linear( 2 * config.hidden_dim, config.ff_dim) Self.p_end_ff = nn.Linear( 2 * config.hidden_dim, config.ff_dim) # used for eq(2) does FFNN(h_a) in a simplified form so that it can be re-used, # note: h_a = where u and v are start and end words respectively # we have 2*config.hidden_dim since we are using a bi-directional LSTM Self.ff_q_indep = nn.Linear( 2*config.hidden_dim, config.ff_dim) Self.ff_align = nn.Linear(config.emb_dim, config.ff_dim) # used for eq(6) does FFNN(p_i)*FFNN(q_j) _grad = False # do not propagate into the pre-trained word embeddings

Self.embed = nn.Embedding(config.vocab_size, config.emb_dim) Self.out_concat_b = nn.Linear(hidden_dim * 2, hidden_dim) Self.out_combine = nn.Linear(hidden_dim * 3, hidden_dim) Self.out_attn = nn.Linear(hidden_dim * 3, hparams) Self.out_concat = nn.Linear(linear_in_dim, hidden_dim) Self.out_target_b = nn.Linear(self.hidden_dim, target_vocab_size) Self.out_target = nn.Linear(hidden_dim, target_vocab_size) u = nn.GRU(gru_in_dim, hidden_dim, self.n_layers, dropout=dropout, batch_first=batch_first, bidirectional= False) Linear_in_dim = hidden_dim * 2 if cancel_attention: Self.word_mode = cancel_attention #False #self.word_mode_b = cancel_attention #False Self.embed = embed # nn.Embedding(target_vocab_size, embed_dim, padding_idx=1)
