From 6051ce5d38a88405a5eb087587850b412def3e6d Mon Sep 17 00:00:00 2001 From: amin saied Date: Tue, 18 May 2021 11:17:23 -0700 Subject: [PATCH] add more detailed logging examples (#69) --- website/docs/cheatsheets/python/v1/logging.md | 105 +++++++++++++----- website/static/img/view-metrics.png | Bin 0 -> 58546 bytes 2 files changed, 80 insertions(+), 25 deletions(-) create mode 100644 website/static/img/view-metrics.png diff --git a/website/docs/cheatsheets/python/v1/logging.md b/website/docs/cheatsheets/python/v1/logging.md index f56ee41..a1b1c67 100644 --- a/website/docs/cheatsheets/python/v1/logging.md +++ b/website/docs/cheatsheets/python/v1/logging.md @@ -22,8 +22,7 @@ run = Run.get_context() run.log('metric-name', metric_value) ``` -You can log the same metric multiple times within a run, the result being considered a vector -of that metric. +You can log the same metric multiple times within a run; the results will be displayed as a chart. ### `log_row` @@ -35,32 +34,24 @@ run = Run.get_context() run.log_row("Y over X", x=1, y=0.4) ``` -### With MLFlow - -Use MLFlowLogger to log metrics. - -```python title="script.py" -from azureml.core import Run - -# connect to the workspace from within your running code -run = Run.get_context() -ws = run.experiment.workspace - -# workspace has associated ml-flow-tracking-uri -mlflow_url = ws.get_mlflow_tracking_uri() -``` - -#### Example: PyTorch Lightning - -```python -from pytorch_lightning.loggers import MLFlowLogger - -mlf_logger = MLFlowLogger(experiment_name=run.experiment.name, tracking_uri=mlflow_url) -mlf_logger._run_id = run.id -``` +:::info More logging options +These are probably the most common APIs used for logging metrics, but see [here](https://docs.microsoft.com/azure/machine-learning/how-to-log-view-metrics#data-types) for a complete +list, including logging lists, tables and images. +::: ## Viewing metrics +Metrics will be automatically available in the Azure ML Studio. Locate your run, e.g., either +by visiting [ml.azure.com](https://ml.azure.com), or using the SDK: + +``` +run.get_workspace_url() +``` + +Select the "Metrics" tab and select the metric(s) to view: + +![](/img/view-metrics.png) + ### Via the SDK Viewing metrics in a run (for more details on runs: [Run](run)) @@ -89,4 +80,68 @@ for run in exp.get_runs(): my_metric = metrics.get('my-metric') if my_metric: print(my_metric) +``` + +## Examples + +### Logging with MLFlow + +Use [MLFlow](https://mlflow.org/) to log metrics in Azure ML. + +```python +from azureml.core import Run + +# connect to the workspace from within your running code +run = Run.get_context() +ws = run.experiment.workspace + +# workspace has associated ml-flow-tracking-uri +mlflow_url = ws.get_mlflow_tracking_uri() +``` + +### Logging with PyTorch Lightning + +This examples: +- Includes Lightning's `TensorBoardLogger` +- Sets up Lightning's `MLFlowLogger` using AzureML `Run.get_context()` + - Only adds this logger when used as part of an Azure ML run + +```python +import pytorch_lightning as pl + +run = None +try: + from azureml.core.run import Run, _OfflineRun + run = Run.get_context() + if isinstance(run, _OfflineRun): + run = None +except ImportError: + print("Couldn't import azureml.core.run.Run") + +def get_logger(): + tb_logger = pl.loggers.TensorBoardLogger('logs/') + logger = [tb_logger] + + if run is not None: + mlflow_url = run.experiment.workspace.get_mlflow_tracking_uri() + mlf_logger = pl.loggers.MLFlowLogger( + experiment_name=run.experiment.name, + tracking_uri=mlflow_url, + ) + mlf_logger._run_id = run.id + logger.append(mlf_logger) + + return logger +``` + +Now include this logger in the lightning `Trainer` class: + +```python +logger = get_logger() + +trainer = pl.Trainer.from_argparse_args( + args=args, + logger=logger, + ) +trainer.fit(model) ``` \ No newline at end of file diff --git a/website/static/img/view-metrics.png b/website/static/img/view-metrics.png new file mode 100644 index 0000000000000000000000000000000000000000..f2592be1fe5cb729cb99d09711d35a7e403d72aa GIT binary patch literal 58546 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 UM*KWj>=O#IDvwGYJbU-Q026^G^#A|> literal 0 HcmV?d00001