mirror of
https://github.com/FoundationAgents/MetaGPT.git
synced 2026-07-02 16:01:04 +02:00
copy notebook to result after mcts
This commit is contained in:
parent
32fc96cf71
commit
8dbcd46bfc
6 changed files with 47 additions and 17 deletions
|
|
@ -2,6 +2,7 @@ import datetime
|
|||
import json
|
||||
import os
|
||||
|
||||
import numpy as np
|
||||
import pandas as pd
|
||||
|
||||
from expo.evaluation.evaluation import evaluate_score
|
||||
|
|
@ -58,17 +59,21 @@ class Experimenter:
|
|||
{"idx": i, "score_dict": score_dict, "user_requirement": user_requirement, "args": vars(self.args)}
|
||||
)
|
||||
self.save_result(results) # save intermediate results
|
||||
dev_scores = [
|
||||
result["score_dict"]["dev_score"] for result in results if result["score_dict"]["dev_score"] != -1
|
||||
]
|
||||
best_dev_score = max(dev_scores) if not self.args.low_is_better else min(dev_scores)
|
||||
dev_scores = [result["score_dict"]["dev_score"] for result in results]
|
||||
best_dev_score = (
|
||||
max(dev_scores)
|
||||
if not self.args.low_is_better
|
||||
else min([score for score in dev_scores if score != -1] + [np.inf])
|
||||
)
|
||||
best_score_idx = dev_scores.index(best_dev_score)
|
||||
|
||||
test_scores = [
|
||||
result["score_dict"]["test_score"] for result in results if result["score_dict"]["dev_score"] != -1
|
||||
]
|
||||
test_scores = [result["score_dict"]["test_score"] for result in results]
|
||||
avg_score = sum(test_scores) / len(test_scores)
|
||||
global_best_score = max(test_scores) if not self.args.low_is_better else min(test_scores)
|
||||
global_best_score = (
|
||||
max(test_scores)
|
||||
if not self.args.low_is_better
|
||||
else min([score for i, score in enumerate(test_scores) if dev_scores[i] != -1] + [np.inf])
|
||||
)
|
||||
|
||||
results.insert(
|
||||
0,
|
||||
|
|
@ -103,6 +108,9 @@ class Experimenter:
|
|||
score_dict.update(scores)
|
||||
return score_dict
|
||||
|
||||
def get_save_name(self):
|
||||
return f"{self.args.exp_mode}-{self.args.task}_{self.start_time}"
|
||||
|
||||
def save_result(self, result):
|
||||
end_time_raw = datetime.datetime.now()
|
||||
end_time = end_time_raw.strftime("%Y%m%d%H%M")
|
||||
|
|
@ -113,6 +121,7 @@ class Experimenter:
|
|||
}
|
||||
result = result.copy()
|
||||
result.insert(0, time_info)
|
||||
save_name = self.get_save_name()
|
||||
os.makedirs(self.result_path, exist_ok=True)
|
||||
with open(f"{self.result_path}/{self.args.exp_mode}-{self.args.task}_{self.start_time}.json", "w") as f:
|
||||
with open(f"{self.result_path}/{save_name}.json", "w") as f:
|
||||
json.dump(result, f, indent=4)
|
||||
|
|
|
|||
|
|
@ -1,3 +1,5 @@
|
|||
import shutil
|
||||
|
||||
from expo.evaluation.visualize_mcts import get_tree_text
|
||||
from expo.experimenter.experimenter import Experimenter
|
||||
from expo.Greedy import Greedy, Random
|
||||
|
|
@ -28,6 +30,9 @@ class MCTSExperimenter(Experimenter):
|
|||
best_node = best_nodes["global_best"]
|
||||
dev_best_node = best_nodes["dev_best"]
|
||||
|
||||
self.copy_notebook(best_node, "best")
|
||||
self.copy_notebook(dev_best_node, "dev_best")
|
||||
|
||||
text, num_generated_codes = get_tree_text(mcts.root_node)
|
||||
text += f"Generated {num_generated_codes} unique codes.\n"
|
||||
text += f"Best node: {best_node.id}, score: {best_node.raw_reward}\n"
|
||||
|
|
@ -49,7 +54,15 @@ class MCTSExperimenter(Experimenter):
|
|||
]
|
||||
self.save_result(results)
|
||||
|
||||
def copy_notebook(self, node, name):
|
||||
node_dir = node.get_node_dir()
|
||||
node_nb_dir = f"{node_dir}/Node-{node.id}.ipynb"
|
||||
save_name = self.get_save_name()
|
||||
copy_nb_dir = f"{self.result_path}/{save_name}_{name}.ipynb"
|
||||
shutil.copy(node_nb_dir, copy_nb_dir)
|
||||
|
||||
def save_tree(self, tree_text):
|
||||
fpath = f"{self.result_path}/{self.args.task}_tree_{self.args.name}.txt"
|
||||
save_name = self.get_save_name()
|
||||
fpath = f"{self.result_path}/{save_name}_tree.txt"
|
||||
with open(fpath, "w") as f:
|
||||
f.write(tree_text)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue