mirror of
https://github.com/Azure/MachineLearningNotebooks.git
synced 2025-12-19 17:17:04 -05:00
70 lines
2.4 KiB
Transact-SQL
70 lines
2.4 KiB
Transact-SQL
-- This procedure returns a list of metrics for each iteration of a run.
|
|
SET ANSI_NULLS ON
|
|
GO
|
|
SET QUOTED_IDENTIFIER ON
|
|
GO
|
|
CREATE OR ALTER PROCEDURE [dbo].[AutoMLGetMetrics]
|
|
(
|
|
@run_id NVARCHAR(250), -- The RunId
|
|
@experiment_name NVARCHAR(32)='automl-sql-test', -- This can be used to find the experiment in the Azure Portal.
|
|
@connection_name NVARCHAR(255)='default' -- The AML connection to use.
|
|
) AS
|
|
BEGIN
|
|
DECLARE @tenantid NVARCHAR(255)
|
|
DECLARE @appid NVARCHAR(255)
|
|
DECLARE @password NVARCHAR(255)
|
|
DECLARE @config_file NVARCHAR(255)
|
|
|
|
SELECT @tenantid=TenantId, @appid=AppId, @password=Password, @config_file=ConfigFile
|
|
FROM aml_connection
|
|
WHERE ConnectionName = @connection_name;
|
|
|
|
EXEC sp_execute_external_script @language = N'Python', @script = N'import pandas as pd
|
|
import logging
|
|
import azureml.core
|
|
import numpy as np
|
|
from azureml.core.experiment import Experiment
|
|
from azureml.train.automl.run import AutoMLRun
|
|
from azureml.core.authentication import ServicePrincipalAuthentication
|
|
from azureml.core.workspace import Workspace
|
|
|
|
auth = ServicePrincipalAuthentication(tenantid, appid, password)
|
|
|
|
ws = Workspace.from_config(path=config_file, auth=auth)
|
|
|
|
experiment = Experiment(ws, experiment_name)
|
|
|
|
ml_run = AutoMLRun(experiment = experiment, run_id = run_id)
|
|
|
|
children = list(ml_run.get_children())
|
|
iterationlist = []
|
|
metricnamelist = []
|
|
metricvaluelist = []
|
|
|
|
for run in children:
|
|
properties = run.get_properties()
|
|
if "iteration" in properties:
|
|
iteration = int(properties["iteration"])
|
|
for metric_name, metric_value in run.get_metrics().items():
|
|
if isinstance(metric_value, float):
|
|
iterationlist.append(iteration)
|
|
metricnamelist.append(metric_name)
|
|
metricvaluelist.append(metric_value)
|
|
|
|
metrics = pd.DataFrame({"iteration": iterationlist, "metric_name": metricnamelist, "metric_value": metricvaluelist})
|
|
'
|
|
, @output_data_1_name = N'metrics'
|
|
, @params = N'@run_id NVARCHAR(250),
|
|
@experiment_name NVARCHAR(32),
|
|
@tenantid NVARCHAR(255),
|
|
@appid NVARCHAR(255),
|
|
@password NVARCHAR(255),
|
|
@config_file NVARCHAR(255)'
|
|
, @run_id = @run_id
|
|
, @experiment_name = @experiment_name
|
|
, @tenantid = @tenantid
|
|
, @appid = @appid
|
|
, @password = @password
|
|
, @config_file = @config_file
|
|
WITH RESULT SETS ((iteration INT, metric_name NVARCHAR(100), metric_value FLOAT))
|
|
END |