I tried it with different amounts of data. Whether I use 1.000, 10.000, or 100.000 training examples - no effect whatsoever…
The way I apply the dual_encoder model is roughly like this (see the line  score = dual_encoder(context, candidate_response) )
Can I just use the model like this after loading it?
def validate_model(): 
 
  
    for example in range(len(id_list_eval_dict['Context'])):
        
        score_per_candidate_dict = {}
 
        for column_name, id_list in sorted(id_list_eval_dict.items()): 

            if column_name != 'Context':
        
                context = autograd.Variable(torch.LongTensor(id_list_eval_dict['Context'][example]).view(len(id_list_eval_dict['Context'][example]),1), requires_grad = False).cuda()
                
                candidate_response = autograd.Variable(torch.LongTensor(id_list_eval_dict[column_name][example]).view(len(id_list_eval_dict[column_name][example]), 1), requires_grad = False).cuda()
    
                score = dual_encoder(context, candidate_response)

                score_sigmoid = torch.sigmoid(score)
                
                score_per_candidate_dict["Score with " + column_name] = score_sigmoid.data[0][0]
        
        scores_per_example_dict[example] = score_per_candidate_dict
    
    return scores_per_example_dict