I have used a couple of computers to run the same script and now have several result_files.pkl.
results1 = gp_minimize(func=fitness,
dimensions=dimensions,
acq_func='gp_hedge',
n_calls=11,
x0=default_parameters)
我想把它们合并在一起,一起分析所有的结果。这可能吗。我尝试使用字典来附加它们:
all_results = {}
for i in range(8):
to_add = 'results'+str(i+1)
all_results.update(to_add)
但收到以下错误消息:
---------------------------------------------------------------------------
ValueError
Traceback (most recent call last) <ipython-input-33-fb7bb81cb72b> in <module>
3 to_add = 'results'+str(i+1)
4 print('adding: ',to_add)
----> 5 all_results.update(to_add)
ValueError: dictionary update sequence element #0 has length 1; 2 is required
关于如何合并它们有什么想法吗
谢谢
我可以通过手动选择可以合并的值来合并它们。要做到这一点,我必须意识到pkl文件基本上是一个字典,您可以通过加载它们,然后使用file.keys()和file.values()来获取文件的键和值。在我的例子中,这些pkl文件是由scikit optimize创建的,字典如下所示:
results1.keys()#与词汇表一样,列出所有键 results1.values()#与字典一样,列出所有值 结果1.乐趣#最佳表现(mse) 结果1.func_vals每次迭代的性能(mse) 结果1.超参数的空间#范围 结果1.specs#运行参数 结果1.x#最佳性能的超参数(mse) 结果1.x#iters超参数测试 结果1.models#用于高斯搜索的模型? 结果1.随机状态#随机种子
我能够循环遍历所有pkl文件并附加“func_vals”和“x_iters”值。这些字段只是numpy数组。其他值是性能最佳的模型或运行本身的标识符。然后,我可以将绘图和其他函数作为单个pkl文件
相关问题 更多 >
编程相关推荐