aim-proxy/encode-3.19.py

112 lines
3.5 KiB
Python

from aim import Repo
from aim.sdk.types import QueryReportMode
from aim.sdk.sequence_collection import QueryRunSequenceCollection
# 配置 Aim repository 路径
repo_path = 'aim://172.20.32.181:30058'
# 打开 Aim repository
repo = Repo(path=repo_path)
def print_run_details(run):
if run is None:
print("Run not found.")
return
# # 打印 Run 对象的所有属性
# print("Run object attributes:")
# for attr in dir(run):
# if not attr.startswith('_'):
# print(attr)
# 打印 Run 对象的运行参数
df = run.dataframe(include_props=False)
print("all params: ", df.to_dict(orient='records'))
props = run.dataframe(include_props=True,include_params=False)
print("props: ", props.to_dict())
# 假设 Run 对象有以下属性
print(f"Run ID: {run.hash}")
print(f"Experiment: {run.experiment}")
print(f"Description: {run.description}")
print(f"Created at: {run.creation_time}")
print(f"Tags: {run.tags}")
for metric_name, metric_context, metric_run in run.iter_metrics_info():
print(f"Metric: {metric_name}, Context: {metric_context}, Run: {metric_run}")
# 通过metric_name, metric_context, metric_run获取metric的具体值
metric_value = run.get_metric(metric_name, metric_context)
print(f"{metric_name}: {metric_value}")
for metric in run.metrics():
result = metric.values.values_list()
last = metric.values.last()
print(f"{metric.name} result is :{result} ")
print(f"{metric.name}-{metric.context}: {last}")
#tt = run.collect_sequence_info(sequence_types="{'context': {'subset': 'train'}, 'name': 'loss')}")
#print("collect info is ", tt)
# # 打印所有参数
# print("\nParameters:")
# if hasattr(run, 'params'):
# for param in run.params.keys():
# print(f"{param}: {run.params[param]}")
# else:
# print("No parameters found.")
#
# # 打印所有metrics
# print("\nMetrics:")
# if hasattr(run, 'metrics'):
# for metric in run.metrics.keys():
# print(f"{metric}: {run.metrics[metric].values()}")
# else:
# print("No metrics found.")
# 打印run的详细信息
# # 查询指定实验的 runs
# experiment_name = "experiment-13"
# # runs = repo.query_runs('run.experiment=="experiment-88888"')
# runs = repo.query_runs()
# if runs is None:
# print("No runs found.")
# exit()
# else:
# print("query_runs result success.")
# result = repo.get_run("648d63882ce14525bc6ee20f")
# print_run_details(result)
# # 查询指定的 runs
# hashes_to_find = ["581c75204d134704b3c9ac27", "3dfdf9b3a4b0453790c8c7d0", "34fd862f49f64d9c8c12aa4a"]
query_res = repo.query_runs(query='run.experiment=="experiment-88888"', paginated=True).iter_runs()
#runs = repo.query_runs(query='', report_mode=QueryReportMode.PROGRESS_TUPLE)
# repo.delete_run("9cd6b4ed0e7848779274ad4f")
# 获取查询到的 runs 的 run.hash 并以数组形式返回
# query = ''
# limit = 10
# offset = 0
# x_timezone_offset = 8
# runs = QueryRunSequenceCollection(repo=repo,
# query=query,
# paginated=bool(limit),
# offset=None,
# report_mode=QueryReportMode.PROGRESS_TUPLE,
# timezone_offset=x_timezone_offset)
# count = sum(1 for _ in runs)
# print(f"Found {count} runs.")
#
runs = [item.run for item in query_res]
for run in runs:
print_run_details(run)