TensorFlow

TensorFlow [1] is an open-source framework for Machine Learning intelligence created by Google. It supports deep-learning and general numerical computations on CPUs, GPUs and clusters of GPUs. It is subject to the terms and conditions of the Apache 2.0 License.

In the sections below, we provide guidance on installing TensorFlow on Databricks and give an example of running TensorFlow programs. See Integrating Deep Learning Libraries with Apache Spark for an example of integrating a deep learning library with Spark.

Note

This guide is not a comprehensive guide on TensorFlow. Please also refer to the TensorFlow website.

Install TensorFlow

TensorFlow may be installed as a regular Databricks Library from PyPi. For GPU-enabled TensorFlow, use the tensorflow-gpu PyPi library. See Libraries for more info on Databricks Libraries.

Note

Please specify tensorflow-gpu==1.2.1 in the Libraries installation interface to use the latest stable release.

Note

Previous versions of TensorFlow required installation using an Init Script. This is no longer necessary!

Setting up TensorBoard

TensorBoard [1] is TensorFlow’s suite of visualization tools for debugging, optimizing and understanding TensorFlow programs. If you’d like to run TensorBoard on your Databricks cluster to monitor TensorFlow, you will first need to update the Databricks security group in your AWS account to give ingress access to incoming TensorBoard connections. You will need to specify which IP addresses will be allowed to connect to TensorBoard. You can give access to an individual IP address or provide a range that represents your entire office IP range. You or your admin only need to complete this step once.

Follow the below steps in AWS console to set it up:

  • From your AWS console, find the Databricks security group. It will have a label similar to <YOUR_DATABRICKS_INSTANCE_NAME>-worker-unmanaged. (Example: dbc-fb3asdddd3-worker-unmanaged)
  • Edit the security group, and add an inbound TCP rule to allow port 6006 to worker machines. It can be a single IP address of your machine or a range.
  • Make sure your laptop and office allows sending TCP traffic on port 6006.
TensorBoard Security Group

Note

Running TensorBoard is not currently supported on Community Edition accounts.

Using TensorBoard

New in version 2.1.1-db5.

Once you’ve enabled incoming connections to TensorBoard, you can start TensorBoard directly from your notebook using a single command.

log_dir = "/tmp/tensorflow_log_dir"
dbutils.tensorboard.start(log_dir)

This command will display a link that, when clicked, opens TensorBoard in a new tab. Make sure to use the same log directory when you start TensorBoard and when you run your TensorFlow program. We recommend you use a local directory on the driver, for example /tmp/tensorflow_log_dir, to store your log files for the best performance (and copy to persistent storage as needed)”. TensorBoard will continue to run until you either. TensorBoard will continue to run until you either use dbutils.tensorboard.stop() to stop it or until you shut down your cluster.

Use TensorFlow on a single node

To test and migrate single-machine TensorFlow workflows, you can start with a driver-only cluster on Databricks by setting the number of workers to zero. Though Apache Spark is not functional under this setting, it is a cost-effective way to run single-machine TensorFlow workflows. This example shows how you can run TensorFlow, with TensorBoard monitoring on a driver-only cluster.

[1](1, 2) TensorFlow and TensorBoard are trademarks of Google, Inc.