Supported machine learning frameworks

You can use popular tools, libraries, and frameworks to build machine learning models using IBM Watson Machine Learning. This topic lists supported versions and features.

 

About this topic

Building models by hand using the frameworks listed here is not the only way to build models using Watson Machine Learning and Watson Studio:

  • The model builder in Watson Studio guides you through designing, training, and deploying machine learning models without requiring experience with these frameworks.
    See: Model builder overview
  • The flow editor in Watson Studio presents a graphical view of your model while you build it by combining nodes representing objects or actions (including SPSS Modeler nodes, Spark ML algorithm nodes, or neural network nodes.) See: Flow editor overview

 

Supported machine learning frameworks

Table 1. Supported machine learning tools, libraries, and frameworks
Framework Features supported in IBM Watson Studio
Spark MLlib
Spark 2.1
  • Deployment: online, batch, and stream.
  • Only classification and regression models are supported.
  • Custom transformers, user-defined functions, and classes are not supported.
  • Batch and stream deployment spark-submit job limits:
    • Lite plan: only one spark-submit job at a time
    • Reserved Enterprise plan: 150 spark-submit jobs at a time
scikit-learn
  • scikit-learn 0.17 on Anaconda 4.2.x for Python 3.5 Runtime
  • scikit-learn 0.19 on Anaconda 5.0.0 for Python 3.5 Runtime
  • Deployment: online only.
  • Core ML (scikit-learn 0.19 only)
  • Only classification and regression models are supported.
  • Custom transformers, user-defined functions, and classes are not supported.
  • Pandas Dataframe input type for "predict()" API is not supported.
  • Models can contain references to only those packages (and package versions) supported by the version of Anaconda used.
  • Online deployment and Core ML models use Python 3.6. Models built using Python 2.7 can fail due to incompatibilities between Python 2.7 and Python 3.6.
XGBoost
  • XGBoost 0.6a2
  • XGBoost 0.71
  • Anaconda 4.2.x for Python 3.5 Runtime
  • scikit-learn 0.17
  • Deployment: online only (XGBoost 0.6a2 only)
  • Core ML (XGBoost 0.71 only)
  • Custom transformers, user-defined functions, and classes are not supported.
  • Probability of prediction is not returned in results.
  • Models can contain references to only those packages (and package versions) supported by Anaconda 4.2.x for Python 3.5 runtime.
  • Online deployment uses Python 3.5. Models built using Python 2.7 can fail due to incompatibilities between Python 2.7 and Python 3.5.
TensorFlow
Version 1.5
  • Deployment: online and batch only.
  • Only JSON content as is supported as the payload for scoring.
  • tf.estimator is not supported.
  • User-defined tensor operations are not supported.

    A model that uses the TensorFlow function py_func cannot be stored in the Watson Machine Learning repository (a prerequisite for deployment.) As described in the py_func documentation external link, it is a restriction in TensorFlow that the body of the user-defined function cannot be serialized in a GraphDef object. As a result, it isn't possible for the Watson Machine Learning service to serialize and save the model.

  • Online deployment uses Python 3.6. Models built using Python 2.7 can fail due to incompatibilities between Python 2.7 and Python 3.6.
Keras
Version 2.1.3
with Tensorflow version 1.5 as backend
  • Deployment: online and batch only.
  • Core ML
  • Only JSON content is supported as the payload for scoring.
  • tf.estimator is not supported.
  • User-defined tensor operations are not supported.

    A model that uses the TensorFlow function py_func cannot be stored in the Watson Machine Learning repository (a prerequisite for deployment.) As described in the py_func documentation external link, it is a restriction in TensorFlow that the body of the user-defined function cannot be serialized in a GraphDef object. As a result, it isn't possible for the Watson Machine Learning service to serialize and save the model.

  • Online deployment uses Python 3.6. Models built using Python 2.7 can fail due to incompatibilities between Python 2.7 and Python 3.6.
Caffe
Version 1.0
  • Deployment: online and batch only.
  • Only JSON content is supported as the payload for scoring.
  • User-defined layers and blobs are not supported.
  • Online deployment uses Python 3.6. Models built using Python 2.7 can fail due to incompatibilities between Python 2.7 and Python 3.6.
PyTorch
Version 0.3
  • Deployment: not supported.
IBM SPSS Modeler
  • IBM SPSS Modeler 17.1
  • IBM SPSS Modeler 18.0
  • Deployment: online and batch only.
  • A branch cannot require a connection to an external service (such as references to rules stored in an IBM SPSS Collaboration and Deployment Services repository.)
  • When using IBM SPSS Modeler embedded Python scripting, the only supported way to reference a node is by its unique ID. (See: Finding nodes)
  • The following features are not supported:
    • DB data/function
    • Hadoop
    • Analytic Server
    • R/Python extensions
    • Social Network Analysis
    • Entity Analytics
    • Text Analytics Japanese edition
  • If you export a stream file (.str) from the Watson Studio flow editor, it can be imported back into the flow editor (to back up or share a design, for example) and it can be imported into SPSS Modeler. But that stream file cannot itself be deployed to Watson Machine Learning; you must train the stream in the flow editor.
Predictive Model Markup Language (PMML)
Version 2.0 to 4.2
  • Deployment: online only.
  • Supported models: R, SAS, SPSS