I wanted to modify a particular head in order to modify some calculations fullfilling the agent requirements and found that you cannot instantiate the new head if it doesnt live in the couch namespace.
If you notice this head lives in the cil module. However when you execute you get:
File "C:\Anaconda3\lib\site-packages\rl_coach\architectures\tensorflow_components\architecture.py", line 105, in __init__
self.get_model()
File "C:\Anaconda3\lib\site-packages\rl_coach\architectures\tensorflow_components\general_network.py", line 305, in get_model
head_idx*head_params.num_output_head_copies + head_copy_idx)
File "C:\Anaconda3\lib\site-packages\rl_coach\architectures\tensorflow_components\general_network.py", line 223, in get_output_head
'head_idx': head_idx, 'is_local': self.network_is_local})
File "C:\Anaconda3\lib\site-packages\rl_coach\utils.py", line 400, in dynamic_import_and_instantiate_module_from_params
module = short_dynamic_import(path)
File "C:\Anaconda3\lib\site-packages\rl_coach\utils.py", line 356, in short_dynamic_import
ignore_module_case=ignore_module_case)
TypeError: dynamic_import() got multiple values for argument 'ignore_module_case'
What happens is that the loading method is not able to figure out that we have explicitely declared the module and therefore is concatenating it into the string before calling short_dynamic_import.
Using Version 0.11.1
I wanted to modify a particular head in order to modify some calculations fullfilling the agent requirements and found that you cannot instantiate the new head if it doesnt live in the couch namespace.
For example, I defined a custom CIL head like:
If you notice this head lives in the
cil
module. However when you execute you get:What happens is that the loading method is not able to figure out that we have explicitely declared the module and therefore is concatenating it into the string before calling
short_dynamic_import
.