We use task.export_task()
and a hacked version to get console log:
def save_console_log(task: clearml.Task, fs, remote_path, number_of_reports=10000):
from clearml.backend_api.services import events
from clearml.backend_api import Session
# Stollen from Task.get_reported_console_output()
if Session.check_min_api_version('2.9'):
request = events.GetTaskLogRequest(
task=task.id,
order='asc',
navigate_earlier=True,
batch_size=number_of_reports)
else:
request = events.GetTaskLogRequest(
task=task.id,
order='asc',
from_='tail',
batch_size=number_of_reports)
res = task.send(request)
response = res.wait()
if not response.ok() or not response.response_data.get('events'):
print("Warning: No Clearml Console log retrieved")
return
logs = response.response_data['events']
json_data = json.dumps(logs, indent=2)
print(f"Saving ClearML task console logs to {remote_path}")
with fs.open(remote_path, "w") as json_file:
json_file.write(json_data)
not sure how for debug sample and scalars ....
But theorically, with the above, one should be able to fully reproduce a run
Hi @<1529633475710160896:profile|ThickChicken87> , I would suggest opening developer tools (F12) and observing what api calls go out when going over the experiment object. This way you can replicate the api calls to pull all the relevant data. I'd suggest reading more here - None