aggregate_hyperdrive_metrics
- health_azure.aggregate_hyperdrive_metrics(child_run_arg_name, run_id=None, run=None, keep_metrics=None, aml_workspace=None, workspace_config_path=None)[source]
For a given HyperDriveRun object, or id of a HyperDriveRun, retrieves the metrics from each of its children and then aggregates it. Optionally filters the metrics logged in the Run, by providing a list of metrics to keep. Returns a DataFrame where each column is one child run, and each row is a metric logged by that child run. For example, for a HyperDrive run with 2 children, where each logs epoch, accuracy and loss, the result would look like:
| | 0 | 1 | |--------------|-----------------|--------------------| | epoch | [1, 2, 3] | [1, 2, 3] | | accuracy | [0.7, 0.8, 0.9] | [0.71, 0.82, 0.91] | | loss | [0.5, 0.4, 0.3] | [0.45, 0.37, 0.29] |
here each column is one of the splits/ child runs, and each row is one of the metrics you have logged to the run.
It is possible to log rows and tables in Azure ML by calling run.log_table and run.log_row respectively. In this case, the DataFrame will contain a Dictionary entry instead of a list, where the keys are the table columns (or keywords provided to log_row), and the values are the table values. E.g.:
| | 0 | 1 | |----------------|------------------------------------------|-------------------------------------------| | accuracy_table |{'epoch': [1, 2], 'accuracy': [0.7, 0.8]} | {'epoch': [1, 2], 'accuracy': [0.8, 0.9]} |
It is also possible to log plots in Azure ML by calling run.log_image and passing in a matplotlib plot. In this case, the DataFrame will contain a string representing the path to the artifact that is generated by AML (the saved plot in the Logs & Outputs pane of your run on the AML portal). E.g.:
| | 0 | 1 | |----------------|-----------------------------------------|---------------------------------------| | accuracy_plot | aml://artifactId/ExperimentRun/dcid.... | aml://artifactId/ExperimentRun/dcid...|
- Parameters
child_run_arg_name (
str
) – the name of the argument given to each child run to denote its position relative to other child runs (e.g. this arg could equal ‘child_run_index’ - then each of your child runs should expect to receive the arg ‘–child_run_index’ with a value <= the total number of child runs)run (
Optional
[Run
]) – An Azure ML HyperDriveRun object to aggregate the metrics from. Either this or run_id must be providedrun_id (
Optional
[str
]) – The id (type: str) of a parent/ HyperDrive run. Either this or run must be provided.keep_metrics (
Optional
[List
[str
]]) – An optional list of metric names to filter the returned metrics byaml_workspace (
Optional
[Workspace
]) – If run_id is provided, this is an optional AML Workspace object to retrieve the Run fromworkspace_config_path (
Optional
[Path
]) – If run_id is provided, this is an optional path to a config containing details of the AML Workspace object to retrieve the Run from.
- Return type
DataFrame
- Returns
A Pandas DataFrame containing the aggregated metrics from each child run