add more detailed logging examples (#69)

This commit is contained in:
amin saied 2021-05-18 11:17:23 -07:00 коммит произвёл GitHub
Родитель acf8f3508b
Коммит 6051ce5d38
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
2 изменённых файлов: 80 добавлений и 25 удалений

Просмотреть файл

@ -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))
@ -90,3 +81,67 @@ for run in exp.get_runs():
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)
```

Двоичные данные
website/static/img/view-metrics.png Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 57 KiB