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.

Supported machine learning frameworks

Note: Support for Python 3.5 is being deprecated in favor of support for Python 3.6 due to a security vulnerability with Python 3.5. The new Python 3.6 environments do not only differ in the Python language version. Open source library versions for packages you may be using also may have changed. This might affect your ability to run the code without modification in the future.If you edit a model or notebook built on a Python 3.5 runtime environment, you will be prompted to upgrade to the Python 3.6 environment. For more details, read the Python 3.6 announcement.

Table 1. Supported machine learning tools, libraries, and frameworks
Framework Features supported in IBM Watson Studio
Spark MLlib
Spark 2.3
Note: You can no longer associate an Apache Spark Lite service with a project. Apache Spark Lite services will be deleted on June 28, 2019. Read this blog post: Deprecation of Apache Spark (Lite Plan).
Streaming deployments will also be discontinued.
  • Deployment: online and batch.
  • Only classification and regression models are supported.
  • Custom transformers, user-defined functions, and classes are not supported.
  • Batch 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.20.3 on Anaconda 2019.03 for Python 3.6 Runtime
  • scikit-learn 0.19 on Anaconda 2019.03 for Python 3.6 Runtime
  • scikit-learn 0.17 on Anaconda 4.2.x for Python 3.5 Runtime (Deprecated)
  • scikit-learn 0.19 on Anaconda 5.0.0 for Python 3.5 Runtime (Deprecated)
  • Deployment: online only.
  • Core ML (scikit-learn 0.19 only)
  • Only classification and regression models are supported.
  • Models that use custom components cannot be trained using Watson Machine Learning training runs or experiments.
  • Models can contain references to only those packages (and package versions) that are available by default in the Anaconda installer of the Anaconda distribution used.
  • To deploy models with references to user-defined transformers/estimators, see: Using custom components
  • Online deployment and Core ML models use Python 3.6.
XGBoost
  • XGBoost 0.82 in an Anaconda 2019.03 with scikit-learn 0.20.3 for Python 3.6 Runtime
  • XGBoost 0.80 in an Anaconda 2019.03 environment with scikit-learn 0.19 for Python 3.6 Runtime
  • XGBoost 0.80 in an Anaconda 5.0.1 environment with scikit-learn 0.19 and Python 3.5 (Deprecated)
  • XGBoost 0.6a2 and 0.71 in an Anaconda 4.2.x environment with scikit-learn 0.17 and Python 3.5 (Deprecated)
  • Deployment: online only (XGBoost 0.80 and 0.82)
  • Core ML (XGBoost 0.71 only)
  • You can define custom scikit-learn transformers and then add them as a stage in a scikit-learn Pipeline with XGBoostClassifier or XGBRegressor.
  • Probability of prediction is not returned in results.
  • Models can contain references to only those packages (and package versions) that are available by default in the Anaconda installer of corresponding Anaconda Distribution version.
  • To deploy models with references to user-defined transformers/estimators, see: Using custom components
  • Online deployment uses Python 3.6.
  • To use XGBoost versions >= 0.80, you must use the Watson Machine Learning Python client version >= 1.0.338
TensorFlow
  • Version 1.13 in an Anaconda 2019.03 environment
  • Version 1.5 (deprecated)
  • Version 1.11 in an Anaconda 5.2.0 environment (deprecated)
  • Deployment: online and batch only.
  • Only JSON content is supported as the payload for scoring.
  • tf.estimator is not supported.
  • Custom component support:
    • User-defined tensor operations that are defined using the tf.py_func API are supported with online deployment.
    • Custom C++ operations are not supported.
    • Models that use custom components cannot be trained using Watson Machine Learning training runs or experiments.
    • See: Using custom operators
  • Training service supports Python 3.5, and 3.6 (Python 3.5 is deprecated.)
  • Online deployment uses Python 3.6.
Keras
  • Version 2.1.6 with TensorFlow version 1.13 in an Anaconda 2019.03 environment
  • Version 2.1.3 with Tensorflow version 1.5 (deprecated)
  • Version 2.2.4 with TensorFlow version 1.11 in an Anaconda 5.2.0 environment
  • Deployment: online and batch only.
  • Core ML
  • Only JSON content is supported as the payload for scoring.
  • tf.estimator is not supported.
  • User-defined layers with trainable weights are not supported. However, stateless custom operations defined using layers.core.Lambda layers are supported with online deployment.
  • Online deployment uses 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.
PyTorch
Versions: 0.3, 0.4.1, 1.0
  • Training a PyTorch model using the Watson Machine Learning training service is supported, but deploying a trained PyTorch model in your Watson Machine Learning service is not supported.
IBM SPSS Modeler
  • IBM SPSS Modeler 17.1
  • IBM SPSS Modeler 18.0, 18.1, 18.2
  • Deployment: online 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 external link)
  • 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 3.0 to 4.3
  • Deployment: online only.
  • Supported models: R, SAS, SPSS
Decision Optimization runtime
  • opl (do-opl_12.9)
  • cplex (do-cplex_12.9)
  • cpo (do-cpo_12.9)
  • docplex (do-docplex_12.9)