these are  the context code s
       self.model.train()
        for label, x_index, x_value in tqdm(dataloader):
            self.optimizer.zero_grad()
            self.global_step += 1
            
            x_index, x_value, label = x_index.type(torch.LongTensor).cuda(), x_value.cuda(), label.cuda()
            
            logits = self.model(x_index, x_value)
            logits = logits.squeeze()
            # logits=torch.sigmoid(logits)
            loss = self.criterion(logits, label.float())
            if self.global_step % 30 == 1:
                print('epoch %d part %d global_step: %d  --- loss: %f' % (epoch, index, self.global_step, loss))
            loss.backward()
            self.optimizer.step()