I am coding the MAML meta-learning model. I am not sure if I am doing correctly or not? After training on support set and calculating the loss over query set, I am updating the model parameters by sending the loss to a function defined in the meta learning model class as follows:
    def my_update_params(self, loss, update_lr):
        # backward pass
        grads = torch.autograd.grad(loss, self.graph_model.parameters(), create_graph=True, only_inputs=True,
                                    allow_unused=True)
        # parameter update
        updated_params = OrderedDict()
        for (name, param) , grad in zip(self.graph_model.named_parameters(),grads):
            print(param)
            if param.requires_grad:
                if grad is None:
                    updated_params = param
                    #print("Grad is None...")
                else:
                    updated_param = param - update_lr * grad
            updated_params[name] = updated_param
        
        return grads, updated_params
In order to save the model parameters in updated_params = OrderedDict().
I saw in another publicly available code that authors update the parameters in a different way:
  def update_params1(self, loss, update_lr):
            grads =torch.autograd.grad(loss, self.graph_model.parameters(), create_graph=True, allow_unused=True)
            # parameter update
            return parameters_to_vector(grads), parameters_to_vector(self.graph_model.parameters())-parameters_to_vector(grads)*update_lr
and the loop for training over meta-learning tasks:
new_grad, new_params = self.update_params1(losses_s, update_lr = self.update_lr)
vector_to_parameters(new_params, self.graph_model.parameters())
My question is in the function my_update_params , how to convert the parameters saved in the OrderedDict() to the pytorch model parameters? In this case vector_to_parameters cannot be used.