diff --git a/sm-model/model.py b/sm-model/model.py index 5b301e2..a8ab5aa 100644 --- a/sm-model/model.py +++ b/sm-model/model.py @@ -59,7 +59,7 @@ class QAModel(nn.Module): q = self.conv_q.forward(question) q = F.max_pool1d(q, q.size()[2]) q = q.view(-1, self.conv_channels) - logger.debug('forward q: {}'.format(q)) + # logger.debug('forward q: {}'.format(q)) a = self.conv_a.forward(answer) a = F.max_pool1d(a, a.size()[2]) @@ -68,10 +68,10 @@ class QAModel(nn.Module): x = None if self.no_ext_feats: x = torch.cat([q, a], 1) - logger.debug('no_ext_feats') + # logger.debug('no_ext_feats') else: x = torch.cat([q, a, ext_feats], 1) - logger.debug('with ext_feats') + # logger.debug('with ext_feats') logger.debug('featvec x: {}'.format(x)) # logger.debug(x.creator) diff --git a/sm-model/train.py b/sm-model/train.py index 34543df..2587b68 100644 --- a/sm-model/train.py +++ b/sm-model/train.py @@ -58,11 +58,8 @@ class Trainer(object): self.optimizer.zero_grad() output = self.model(xq, xa, ext_feats) - - # output = torch.exp(output) - loss = self.criterion(output, ys) - logger.debug('loss after criterion {}'.format(loss)) + # logger.debug('loss after criterion {}'.format(loss)) # NOTE: regularizing location 1 # if not self.no_loss_reg: @@ -71,20 +68,20 @@ class Trainer(object): loss.backward() - logger.debug('AFTER backward') + # logger.debug('AFTER backward') #logger.debug('params {}'.format([p for p in self.model.parameters()])) - logger.debug('params grads {}'.format([p.grad for p in self.model.parameters()])) + # logger.debug('params grads {}'.format([p.grad for p in self.model.parameters()])) # NOTE: regularizing location 2. It would seem that location 1 is correct? if not self.no_loss_reg: loss = self.regularize_loss(loss) - logger.debug('loss after regularizing {}'.format(loss)) + # logger.debug('loss after regularizing {}'.format(loss)) self.optimizer.step() - logger.debug('AFTER step') + # logger.debug('AFTER step') #logger.debug('params {}'.format([p for p in self.model.parameters()])) - logger.debug('params grads {}'.format([p.grad for p in self.model.parameters()])) + # logger.debug('params grads {}'.format([p.grad for p in self.model.parameters()])) return loss.data[0], self.pred_equals_y(output, ys) @@ -134,17 +131,15 @@ class Trainer(object): xq, xa, x_ext_feats = batch_inputs[0] y = batch_labels[0] - pred = self.model(xq, xa, x_ext_feats) + pred = self.model(xq, xa, x_ext_feats) loss = self.criterion(pred, y) pred = torch.exp(pred) total_loss += loss total_correct += self.pred_equals_y(pred, y) - p_score, p_class = pred.max(1) - y_pred[ypc] = p_score.data.squeeze()[0] + y_pred[ypc] = pred.data.squeeze()[1] # we want to score for relevance, NOT the predicted class ypc += 1 - logger.info('{}_correct {}'.format(set_folder, total_correct)) logger.info('{}_loss {}'.format(set_folder, total_loss.data[0])) logger.info('{} total {}'.format(set_folder, len(labels))) @@ -229,8 +224,7 @@ class Trainer(object): tensorized_inputs = [] for i in xrange(len(batch_ques)): xq = Variable(self.make_input_matrix(batch_ques[i], word_vectors, vec_dim) ) #, requires_grad=False) - xs = Variable(self.make_input_matrix(batch_sents[i], word_vectors, vec_dim) ) #, requires_grad=False) - # ext_feats = Variable(torch.FloatTensor(batch_ext_feats[i])) + xs = Variable(self.make_input_matrix(batch_sents[i], word_vectors, vec_dim) ) #, requires_grad=False) ext_feats = Variable(torch.FloatTensor(batch_ext_feats[i])) ext_feats =torch.unsqueeze(ext_feats, 0) y[i] = batch_labels[i]