Hi,
I noticed that the values of these two expressions output_teacher_batch.data.cpu().numpy(),  output_teacher_batch.data.cpu() are different. In which the output is pytorch Variable. the following piece(training loop of CNN) of code is how I checked it. this is really confusing, why these two expressions have different values. appreciate any idea

with tqdm(total=len(dataloader)) as t:
    for i, (train_batch, labels_batch) in enumerate(dataloader):
        # move to GPU if available
        if params.cuda:
            train_batch, labels_batch = train_batch.cuda(async=True),                                             labels_batch.cuda(async=True)
        # convert to torch Variables
        train_batch, labels_batch = Variable(train_batch), Variable(labels_batch)

        # compute model output, fetch teacher output, and compute KD loss
        output_batch = model(train_batch)

        # get one batch output from teacher_outputs list
        output_teacher_batch = torch.from_numpy(teacher_outputs[i])
        if params.cuda:
            output_teacher_batch = output_teacher_batch.cuda(async=True)
        output_teacher_batch = Variable(output_teacher_batch, requires_grad=False)

        ## here we should pass only those values of output that related to each cluster not all
  	print('teacher')
  	np.savetxt('version1.txt', output_teacher_batch.data.cpu().numpy())				
  	print(output_teacher_batch.data.cpu())