Некоторые ошибки, когда я перезагружаю "torch.nn.functioanl"? - PullRequest
0 голосов
/ 03 июля 2019

Я хочу изменить некоторые функции в "torch.nn.functional", а затем я использую "importlib.reload" для перезагрузки нового "torch.nn.functional". Но я сталкиваюсь с ошибкой во время выполнения: функция 'avg_pool2d' уже имеет строку документации.

Я пытаюсь выполнить некоторую работу над excitationbp (https://github.com/greydanus/excitationbp),), и существует операция с именем "eb.use_eb ()" для изменения "torch.nn.functional". Функция eb.use_eb () имеет вид для изменения «torch.nn.linear», «torch.nn.functional.conv1d» и т. д. Я пытаюсь изменить код, в том числе многие eb.use_eb () в utils.py. Когда я хочу запустить оригинал "torch.nn.linear", я должен запустить eb.use_eb (False). Но модуль загружен в начало файла (импорт torch.nn.funtional). Поэтому я хочу перезагрузить модуль "torch.nn .funtional». Когда я использую «importlib.reload», я сталкиваюсь с ошибкой.

eb.use_eb(False,True)
importlib.reload(torch)
importlib.reload(torch.nn)
importlib.reload(torch.nn.functional) 
print("gradient_evidence:"+str(gradient_evidence))
return torch.autograd.grad(contr_h_, target_h_, grad_outputs=gradient_evidence)[0]
RuntimeError         Traceback (most recent call last)
ipython-input-15-29d0fca29882 in module()
----> 1 prob_inputs_one = eb.excitation_backprop(model, inputs, prob_outputs_one, contrastive=2)
      2 #pdb.set_trace()
      3 prob_inputs_true = eb.excitation_backprop(model, inputs, prob_outputs_true, contrastive=2)

~/code/excitationbp/excitationbp-master/excitationbp/utils.py in excitation_backprop(model, inputs, prob_outputs, contrastive, target_layer)
     75         importlib.reload(torch)
     76         importlib.reload(torch.nn)
---> 77         importlib.reload(torch.nn.functional)
     78 
     79         gradient_evidence = torch.autograd.grad(top_h_, contr_h_, grad_outputs=prob_outputs.clone())[0]

~/anaconda3/envs/pytorch0.3/lib/python3.6/importlib/__init__.py in reload(module)
    164         target = module
    165         spec = module.__spec__ = _bootstrap._find_spec(name, pkgpath, target)
--> 166         _bootstrap._exec(spec, module)
    167         # The module may have replaced itself in sys.modules!
    168         return sys.modules[name]

~/anaconda3/envs/pytorch0.3/lib/python3.6/importlib/_bootstrap.py in _exec(spec, module)

~/anaconda3/envs/pytorch0.3/lib/python3.6/importlib/_bootstrap_external.py in exec_module(self, module)

~/anaconda3/envs/pytorch0.3/lib/python3.6/importlib/_bootstrap.py in _call_with_frames_removed(f, *args, **kwds)

~/anaconda3/envs/pytorch0.3/lib/python3.6/site-packages/torch/nn/functional.py in <module>()
    286     count_include_pad: when True, will include the zero-padding in th
    287         averaging calculation. Default: ``True``
--> 288 """)
    289 
    290 avg_pool3d = _add_docstr(torch._C._nn.avg_pool3d, r"""

RuntimeError: function 'avg_pool2d' already has a docstring

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...