TensorFlow and more with IBM Z

Javier Perez
IBM Data Science in Practice
3 min readJan 8, 2021
The TensorFlow logo

TF, TF Serving, TF Transform for s390x processor architecture

In this blog post, I’m going to talk about TensorFlow, TensorFlow Serving and TensorFlow Transform availability in s390x processor architecture, the architecture for IBM Z and LinuxONE.

Today Artificial Intelligence (AI) is used more and more for both research projects and business competitiveness. The fields of Machine Learning (ML) and Deep Learning (DL) have grown largely over the past decade and there’s no stop in sight.

One of the most used open-source libraries for ML and DL is TensorFlow. It has grown from a framework library to an end-to-end ML platform that includes a set of different open-source projects. For the purpose of this blog post, I’m going to focus on TensorFlow as a framework first. Five years ago, Google open-sourced TensorFlow under Apache Open Source License on November 9, 2015. On February 11, 2017, version 1.0.0 was released[1]. Now on version 2.4.0 after only five years, it has become the most popular ML library in the world, with over 160 million downloads[2].

In a typical scenario during the development phase, data scientists train their models locally on their desktops or laptops. Once the training is done, TensorFlow can be run on different hardware platforms on-premise or in the cloud.

One platform not widely known for AI applications is IBM Z and LinuxONE. You can find more about use cases and AI open-source software for IBM Z and LinuxONE in this blog post. TensorFlow has been available for this platform architecture (s390x) for over 3 years now. This allows developers and data scientists to use TensorFlow and create AI applications in the same platform that holds their enterprise mission-critical applications including banking, financial transactions, payrolls, scientific research, and more.

Enterprise AI applications run on IBM Z and LinuxONE because it is the best platform for I/O intensive and for high-performant access to storage and databases. AI applications can take advantage of other IBM Z and LinuxONE features including secure data in transit, at rest, and in use with confidential computing. IBM Z and LinuxONE is the only platform that provides 99.999% availability in the market.

Based on open-source upstream contributions by the IBM team, TensorFlow has been available on various community-supported builds for s390x (IBM Z & LinuxONE) and ppc6le (IBM Power). There is a growing ecosystem of open-source software also available for s390x. Open-source projects expand their platform coverage by building their projects in most cases with minor adjustments or no changes at all to run in the s390x processor architecture.

Let’s talk about TensorFlow Serving first. When ML models are trained and ready to be moved to production, TensorFlow Serving makes the process of deploying models to start serving prediction requests in a consistent architecture and APIs. It serves one or many new models, as well as new versions of existing models and is ideal when running multiple models on a large-scale.

TensorFlow Serving makes the process of taking a model into production easier and faster. It allows you to safely deploy new models and run experiments, it works with TensorFlow models but can also be used for other types of models.

TensorFlow Transform (tf.Transform) is a Python library for TensorFlow that allows the preprocessing of input data. Users can define preprocessing pipelines and export them to run as part of a TensorFlow graph. Examples of data transformation include: normalizing values by using the mean and standard deviation functions, converting strings to integers, or floating types to integers, among others. With TensorFlow Transform, serving-time transformations are the same as those performed at training-time.

Now you can use the latest versions of TensorFlow Serving and TensorFlow Transform in s390x architecture. You can find build instructions in this GitHub wiki document for TensorFlow Serving and in this document for TensorFlow Transform.

--

--