我有不同的包含神经网络的python文件。每个python文件都有关联的weights.h5文件。
现在我想创建一个python评估文件,它加载所有网络/ python文件及其权重,创建每个文件的一个实例并比较它们的性能。
到目前为止,我尝试导入为包,但之后我无法通过索引访问模块。我如何导入所有的模型并将它们的一个实例放在一个列表中,这样我就可以通过索引访问它们?
一个例子
from evaluation.v03 import DQNSolver as DQN1
from evaluation.v04 import DQNSolver as DQN2
from evaluation.v05 import DQNSolver as DQN3
...
这是可行的,但我必须对每个导入进行硬编码。此外,我无法通过索引创建实例,也无法通过索引访问它们以在所有实例之间进行比较。
发布于 2018-12-19 09:14:35
使用__import__()
函数而不是import
语句。如下所示:
modules = []
for i in range(10):
modules.append( __import__('evaluation.v{:>02}'.format(i)) )
然后你就可以像modules[x].DQNSolver
一样访问它们了
发布于 2018-12-19 09:33:19
使用比直接使用__import__()
更推荐的import_module()
:
from importlib import import_module
solvers = [getattr(import_module(f'evaluation.v{i:02d}'), 'DQNSolver') for i in range(5)]
solver = solvers[1]()
# solver -> <evaluation.v01.DQNSolver object at 0x7f0b7b5e5e10>
https://stackoverflow.com/questions/53847645
复制相似问题