Use Microsoft Cognitive Toolkit deep learning model with Azure HDInsight Spark cluster

In this article, you do the following steps.

  1. Run a custom script to install Microsoft Cognitive Toolkit on an Azure HDInsight Spark cluster.

  2. Upload a Jupyter Notebook to the Apache Spark cluster to see how to apply a trained Microsoft Cognitive Toolkit deep learning model to files in an Azure Blob Storage Account using the Spark Python API (PySpark)


How does this solution flow?

This solution is divided between this article and a Jupyter Notebook that you upload as part of this article. In this article, you complete the following steps:

  • Run a script action on an HDInsight Spark cluster to install Microsoft Cognitive Toolkit and Python packages.
  • Upload the Jupyter Notebook that runs the solution to the HDInsight Spark cluster.

The following remaining steps are covered in the Jupyter Notebook.

  • Load sample images into a Spark Resilient Distributed Dataset or RDD.
    • Load modules and define presets.
    • Download the dataset locally on the Spark cluster.
    • Convert the dataset into an RDD.
  • Score the images using a trained Cognitive Toolkit model.
    • Download the trained Cognitive Toolkit model to the Spark cluster.
    • Define functions to be used by worker nodes.
    • Score the images on worker nodes.
    • Evaluate model accuracy.

Install Microsoft Cognitive Toolkit

You can install Microsoft Cognitive Toolkit on a Spark cluster using script action. Script action uses custom scripts to install components on the cluster that aren't available by default. You can use the custom script from the Azure portal, by using HDInsight .NET SDK, or by using Azure PowerShell. You can also use the script to install the toolkit either as part of cluster creation, or after the cluster is up and running.

In this article, we use the portal to install the toolkit, after the cluster has been created. For other ways to run the custom script, see Customize HDInsight clusters using Script Action.

Using the Azure portal

For instructions on how to use the Azure portal to run script action, see Customize HDInsight clusters using Script Action. Make sure you provide the following inputs to install Microsoft Cognitive Toolkit. Use the following values for your script action:

Property Value
Script type - Custom
Name Install MCT
Bash script URI
Node type(s): Head, Worker
Parameters None

Upload the Jupyter Notebook to Azure HDInsight Spark cluster

To use the Microsoft Cognitive Toolkit with the Azure HDInsight Spark cluster, you must load the Jupyter Notebook CNTK_model_scoring_on_Spark_walkthrough.ipynb to the Azure HDInsight Spark cluster. This notebook is available on GitHub at

  1. Download and unzip

  2. From a web browser, navigate to, where CLUSTERNAME is the name of your cluster.

  3. From the Jupyter Notebook, select Upload in the top-right corner and then navigate to the download and select file CNTK_model_scoring_on_Spark_walkthrough.ipynb.

    Upload Jupyter Notebook to Azure HDInsight Spark cluster.

  4. Select Upload again.

  5. After the notebook is uploaded, click the name of the notebook and then follow the instructions in the notebook itself on how to load the data set and perform the article.

See also


Create and run applications

Tools and extensions

Manage resources