Почему PyTorch не может найти все параметры для градиентного спуска с помощью MAML и библиотеки Learn2learn? (все параметры должны быть обновлены)

Я использовал структуру Learn2learn для метаобучения и получил эту ошибку:

      Traceback (most recent call last):
  File "/home/miranda9/miniconda3/envs/meta_learning_a100/lib/python3.9/site-packages/learn2learn/algorithms/maml.py", line 159, in adapt
    gradients = grad(loss,
  File "/home/miranda9/miniconda3/envs/meta_learning_a100/lib/python3.9/site-packages/torch/autograd/__init__.py", line 226, in grad
    return Variable._execution_engine.run_backward(
RuntimeError: One of the differentiated Tensors appears to not have been used in the graph. Set allow_unused=True if this is the desired behavior.
Traceback (most recent call last):
  File "/home/miranda9/diversity-for-predictive-success-of-meta-learning/div_src/diversity_src/experiment_mains/main_dist_maml_l2l.py", line 629, in <module>
    main()
  File "/home/miranda9/diversity-for-predictive-success-of-meta-learning/div_src/diversity_src/experiment_mains/main_dist_maml_l2l.py", line 565, in main
    train(args=args)
  File "/home/miranda9/diversity-for-predictive-success-of-meta-learning/div_src/diversity_src/experiment_mains/main_dist_maml_l2l.py", line 609, in train
    meta_train_iterations_ala_l2l(args, args.agent, args.opt, args.scheduler)
  File "/home/miranda9/ultimate-utils/ultimate-utils-proj-src/uutils/torch_uu/training/meta_training.py", line 149, in meta_train_iterations_ala_l2l
    train_loss, train_loss_std, train_acc, train_acc_std = meta_learner(task_dataset, call_backward=True)
  File "/home/miranda9/miniconda3/envs/meta_learning_a100/lib/python3.9/site-packages/torch/nn/modules/module.py", line 1051, in _call_impl
    return forward_call(*input, **kwargs)
  File "/home/miranda9/ultimate-utils/ultimate-utils-proj-src/uutils/torch_uu/meta_learners/maml_meta_learner.py", line 375, in forward
    meta_loss, meta_loss_ci, meta_acc, meta_acc_ci = forward(meta_learner=self,
  File "/home/miranda9/ultimate-utils/ultimate-utils-proj-src/uutils/torch_uu/meta_learners/maml_meta_learner.py", line 318, in forward
    loss, acc = fast_adapt(
  File "/home/miranda9/ultimate-utils/ultimate-utils-proj-src/uutils/torch_uu/meta_learners/maml_meta_learner.py", line 272, in fast_adapt
    learner.adapt(adaptation_error)
  File "/home/miranda9/miniconda3/envs/meta_learning_a100/lib/python3.9/site-packages/learn2learn/algorithms/maml.py", line 169, in adapt
    self.module = maml_update(self.module, self.lr, gradients)
UnboundLocalError: local variable 'gradients' referenced before assignment

что мне показалось озадачивающим. Я не делаю ничего особенного, просто копирую большую часть кода из руководств... поэтому я не знаю, почему я получаю эту ошибку. Любые идеи?

Моя модель — это просто сеть прямой связи по видению/изображениям для классификации. Не должно быть никаких необработанных параметров (например, в преобразователе, где не всегда используются все вложения/слова).


Пересекать:

связанные с:

0 ответов

Другие вопросы по тегам