You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Right now an Executor records all routines executed in its history. Then report can generate a qibocal report of everything done.
It would be useful to be able to only report small parts of this history ideally via slicing, so that if we run optimization loops we can get a snapshot of the evolution across epochs and not have a kilometric report with each an every one of the function evaluations.
It would also be interesting in some cases to not save all the data, as that would blow up storage space.
Would that be easy to implement and open to the user?
The text was updated successfully, but these errors were encountered:
I didn't have yet enough time to commit much to the user interface, but all of this will be pretty simple to make available with scripts.
However, though pretty much convoluted, this is already partially available from the June/July refactor which led to scripts.
As you noted, the Executor is recording all the routines in a History object, and the report() function accepts a History as an input. This last piece was the main update: I'm trying to register fewer things deep inside objects, and pass simpler objects around (as input and output of functions).
So, in this case you could consider report() as a function that takes a History and returns the actual report (i.e. History -> HTML, though the HTML is being dumped to a path, so the function actually returns nothing).
The History object itself is pretty simple, and mainly a wrapper around a dictionary:
So, if you want to do something like that right now, what you can do is:
# execute your routineshistory=executor.history.copy()
# remove outputs you're not interested indelhistory._task["routine-1-id"]
delhistory._task["routine-7-id"]
delhistory._task["routine-42-id"]
# plot just what you wantreport(path, history)
Yes, it's not elegant at all, and it should be improved. Possibly even passing to report() a list of routines' IDs to include/exclude. That's why I'm suggesting to keep this issue open.
However, this is what you could try to use even right now.
Right now an
Executor
records all routines executed in itshistory
. Thenreport
can generate a qibocal report of everything done.It would be useful to be able to only report small parts of this
history
ideally via slicing, so that if we run optimization loops we can get a snapshot of the evolution across epochs and not have a kilometric report with each an every one of the function evaluations.It would also be interesting in some cases to not save all the data, as that would blow up storage space.
Would that be easy to implement and open to the user?
The text was updated successfully, but these errors were encountered: