ML Model Inference

Inference

This activity enables the inferencing of Machine Learning models within Flogo applications. This activity was built with a framework contribution model concept. The implemented framework is TensorFlow.

For detailed instructions, refer to the Flogo Documentation.

Installation

Flogo Web

This activity does not come pre-installed with the Web UI for a number of reasons, such as, the size, the requirement of TensorFlow lib and also the fact that it is an activity that is commonly used on a daily basis.

Flogo CLI

flogo install activity github.com/TIBCOSoftware/flogo-contrib/activity/inference

Schema

Inputs and Outputs:

{
  "input":[
    {
      "name": "model",
      "type": "string",
      "required": true
    },
    {
      "name": "framework",
      "type": "string",
      "required": true
    },
    {
      "name": "sigDefName",
      "type": "string",
      "required": false,
      "value":"serving_default"
    },
    {
      "name": "tag",
      "type": "string",
      "required": false,
      "value":"serve"
    },
    {
      "name": "features",
      "type": "array",
      "required": true
    }
  ],
  "output": [
    {
      "name": "result",
      "type": "object"
    }
  ]
}

Settings

Setting Required Description
model True The location to the archive. If using TensorFlow, the archive must contain the TensorFlow SavedModel
framework True The framework to use. Other frameworks can be registered at build time, the only available framework is TensorFlow
sigDefName False The default signature definition. This comes from the SavedModel metadata. The default value is serving_default
tag False The model tag. This comes from the SavedModel metadata. The default value is serve
features true An array of input features. Refer to the following sample.

Example

Estimators

The following example demonstrates how to invoke the inference activity and pass the input feature set for the tensor named inputs. Tensor names may vary, it is best to refer to the SavedModel metadata to identify the correct tensor name.

{
  "id": "inference_2",
  "name": "Invoke ML Model",
  "activity": {
    "ref": "github.com/TIBCOSoftware/flogo-contrib/activity/inference",
    "input": {
      "model": "Archive.zip",
      "framework": "Tensorflow"
    },
    "mappings": {
      "input": [
        {
          "type": "assign",
          "value": [
            {
              "name": "inputs",
              "data": {
                "z-axis-q75": 4.140586,
                "corr-x-z": 0.1381063882214782,
                "x-axis-mean": 1.7554575428900194,
                "z-axis-sd": 4.6888631696380765,
                "z-axis-skew": -0.3619011587545954,
                "y-axis-sd": -7.959084724314854,
                "y-axis-q75": 16.467001,
                "corr-z-y": 0.3467060369518231,
                "x-axis-sd": 6.450293741961166,
                "x-axis-skew": 0.09756801680727022,
                "y-axis-mean": 9.389463650669393,
                "y-axis-skew": -0.49036224958471764,
                "z-axis-mean": 1.1226106985139188,
                "x-axis-q25": -3.1463003,
                "x-axis-q75": 6.3198414,
                "y-axis-q25": 3.0645783,
                "z-axis-q25": -1.9477097,
                "corr-x-y": 0.08100326860866637
              }
            }
          ],
          "mapTo": "features"
        }
      ]
    }
  }
}