Azure Machine Learning Service — Run a Simple Experiment

Original article was published on Artificial Intelligence on Medium

Machine Learning Experiment Script

Once connected to the Azure Machine Learning workspace, the next step is to define a model experiment script, this is a very general python script which is loaded and executed form the experiment’s ‘workspace’ compute context. This also requires that the data files’ root (folder) has to be at the same location where this script is loaded, as shown below —

Fig 1: Snapshot of Experiment Script — it’s mandatory to import azureml.core.Run class and execute its get_context() method

Experiment Output Folder — Mostly, Run of an experiment generates some output files, e.g. a saved model, that are saved in the workspace’s outputs folder as shown below —

os.makedirs("outputs", exist_ok=True)
joblib.dump(value=model, filename='outputs/iris_simple_model.pkl')
# Complete the run
run.complete()

One can also use the Run object’s upload_file method in the experiment file code as shown below, this enables that any files written to the outputs folder in the compute context are automatically uploaded to the run’s outputs folder when the run completed, e.g. —

run.upload_file(name='outputs/IRIS.csv', path_or_stream='./sample.csv') # upload from local

Run the Experiment

RunConfiguration and ScriptRunConfig

After the script for implementing the ML model is ready, the next step is to define RunConfiguration object — which defines the Python environment in which the script will run, and ScriptRunConfig objectwhich associates the run environment with the script. The below code snippet instantiates the Python environment by calling the RunConfiguration() method and ScriptRunConfig() encapsulate the same environment for the script’s execution:

from azureml.core import Experiment, RunConfiguration, ScriptRunConfig# create a new RunConfig object
experiment_run_config = RunConfiguration()
experiment_run_config.environment.python.user_managed_dependencies = True
# Create a script config
src = ScriptRunConfig(source_directory=experiment_folder,
script='iris_simple_experiment.py',
run_config=experiment_run_config)

The RunConfig object also allows to additionally include the Python packages which are necessary for script execution.

Dashboard Results

Access the Azure Machine Learning Studio to navigate for the sample experiment run and verify the results in results on the dashboard. Here, the entire details of the experiment’s run history is displayed, as shown below — the details of run stats, history, results, metrics, logs, outputs, errors, diagnostics, etc.. are readily available from the dashboard:

Fig 2: Dashboard results view for Iris-sample-experiment, observe the run stats and other metrics available.
Fig 3: More detailed results are also available for any selected experiment, e.g. Run# 20
Fig 4: Outputs folder has a model file uploaded by using the experiment’s script

Conclusion

In this part of the series, I tried to cover the most fundamental concept of Azure Machine Learning Service, i.e., to prepare and execute a machine learning experiment and generate a model binary. In the next article, I will cover a slightly more advanced way to set up and control the script’s execution environment, install or update the required dependencies & packages. So please stay tuned!

References

[1] Notebook & Code — Azure Machine Learning — Introduction, Kaggle.
[2] Azure Machine Learning Service Official Documentation, Microsoft Azure.