如何合并多个搜索结果文件(pkl)以将它们全部打印在一起?

2024-06-30 14:03:04 发布

您现在位置:Python中文网/ 问答频道 /正文

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

关于如何合并它们有什么想法吗

谢谢


Tags: oftoinaddhaveupdateallresults
1条回答
网友
1楼 · 发布于 2024-06-30 14:03:04

我可以通过手动选择可以合并的值来合并它们。要做到这一点,我必须意识到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文件

相关问题 更多 >