Python 如何更有效地使用功能输入?
我有一个函数Python 如何更有效地使用功能输入?,python,python-3.x,python-2.7,Python,Python 3.x,Python 2.7,我有一个函数 init_from_checkpoint( ckpt_dir_or_file, assignment_map) 其中assignment\u map支持以下语法: “checkpoint_scope_name/”:“scope_name/”-将使用匹配的张量名称从checkpoint_scope_name加载当前scope_name中的所有变量 比如说, init_from_checkpoint('/tmp/model.ckpt', {'
init_from_checkpoint(
ckpt_dir_or_file,
assignment_map)
其中assignment\u map
支持以下语法:
“checkpoint_scope_name/”:“scope_name/”-将使用匹配的张量名称从checkpoint_scope_name加载当前scope_name中的所有变量
比如说,
init_from_checkpoint('/tmp/model.ckpt',
{'old_scope_1/var1': 'new_scope_1/var1',
'old_scope_1/var2': 'new_scope_1/var2'})
现在,我有两个清单
old_scope_1_list=[old_scope_1/var1, old_scope_1/var2, ...,old_scope_1/var100]
new_scope_1_list=[new_scope_1/var1, new_scope_1/var2, ...,new_scope_1/var100]
如何使用old\u scope\u 1\u list
和new\u scope\u list
从\u checkpoint调用函数init\u,以便在python中有效地调用函数?我目前的解决方案是,在不使用两个列表的情况下,按照下面的方式写100行,但这种方式看起来无效
init_from_checkpoint('/tmp/model.ckpt',
{'old_scope_1/var1': 'new_scope_1/var1',
'old_scope_1/var2': 'new_scope_1/var2',
...
'old_scope_1/var100': 'new_scope_1/var100'})
您可以使用zip
从旧的\u范围\u 1\u列表和新的\u范围\u 1\u列表中创建配对列表。然后在该对上使用dict
,创建所需的映射
In [67]: old_scope_1_list=['old_scope_1/var1',
'old_scope_1/var2','old_scope_1/var100']
...: new_scope_1_list=['new_scope_1/var1',
'new_scope_1/var2','new_scope_1/var100']
In [68]: zip(old_scope_1_list, new_scope_1_list)
Out[68]: <zip at 0x7f4dd084c748>
In [69]: x = zip(old_scope_1_list, new_scope_1_list)
In [70]: dict(x)
Out[70]:
{'old_scope_1/var1': 'new_scope_1/var1',
'old_scope_1/var100': 'new_scope_1/var100',
'old_scope_1/var2': 'new_scope_1/var2'}
您可以使用zip
从旧的\u范围\u 1\u列表和新的\u范围\u 1\u列表中创建配对列表。然后在该对上使用dict
,创建所需的映射
In [67]: old_scope_1_list=['old_scope_1/var1',
'old_scope_1/var2','old_scope_1/var100']
...: new_scope_1_list=['new_scope_1/var1',
'new_scope_1/var2','new_scope_1/var100']
In [68]: zip(old_scope_1_list, new_scope_1_list)
Out[68]: <zip at 0x7f4dd084c748>
In [69]: x = zip(old_scope_1_list, new_scope_1_list)
In [70]: dict(x)
Out[70]:
{'old_scope_1/var1': 'new_scope_1/var1',
'old_scope_1/var100': 'new_scope_1/var100',
'old_scope_1/var2': 'new_scope_1/var2'}
可能的重复您也可以有一个变量名列表,只需字符串连接每个具有旧/新作用域的变量名即可获得所需内容,这样您就只有一个地方可以更改内容。可能的重复您也可以有一个变量名列表,只需字符串连接每个具有旧/新作用域的变量名你可以得到你需要的东西,所以你只有一个地方可以换东西。太好了。让我检查一下,确认一下,谢谢。效果很好。让我检查一下,确认一下,谢谢。它工作得很好