転送フロー TensorFlow

マイテナントは、Google によって作成された機械学習用のオープンソースフレームワークです。TensorFlow is an open-source framework for machine learning created by Google. Cpu、Gpu、および Gpu のクラスターに対するディープラーニングと一般的な数値計算をサポートしています。It supports deep-learning and general numerical computations on CPUs, GPUs, and clusters of GPUs. Apache 2.0 ライセンスの使用条件が適用されます。It is subject to the terms and conditions of the Apache 2.0 License.

以下のセクションでは、Azure Databricks での管理のインストールについてのガイダンスを提供し、その例を使用して、管理プログラムを実行します。In the sections below, we provide guidance on installing TensorFlow on Azure Databricks and give an example of running TensorFlow programs.

注意

このガイドは、「包括的なガイド」ではありません。This guide is not a comprehensive guide on TensorFlow. 「Azure のフロー」 web サイトを参照してください。See the TensorFlow website.

インストールしたフローをインストールする Install TensorFlow

Databricks Runtime ML に含まれる管理対象バージョンTensorFlow versions included in Databricks Runtime ML

Databricks Runtime ML には、パッケージをインストールせずにこれらのライブラリを使用できるように、このようなライブラリを使用できるようにするための機能が含まれています。Databricks Runtime ML includes TensorFlow and TensorBoard so you can use these libraries without installing any packages. 次に示すのは、含まれている次のようなバージョンです。Here are the TensorFlow versions included:

Databricks Runtime ML バージョンDatabricks Runtime ML Version 転送フローのバージョンTensorFlow Version
6.16.1 1.14.01.14.0
5.5 LTS-6.05.5 LTS - 6.0 1.13.11.13.1
5.1 ~ 5.45.1 - 5.4 1.12.0 以降1.12.0
5.05.0 1.10.01.10.0

Databricks Runtime ML および Databricks Runtime に対して、[のインストール] をインストールします。Install TensorFlow on Databricks Runtime ML and Databricks Runtime

Azure Databricks では、最新のリリースの Databricks Runtime ML および Databricks Runtime にインストールする手順について説明します。これにより、最新の機能を使用できるようになります。Azure Databricks provides instructions for installing newer releases of TensorFlow on Databricks Runtime ML and Databricks Runtime, so that you can try out the latest features in TensorFlow. パッケージの依存関係が原因で、他のインストール済みパッケージと互換性の問題が発生している可能性があります。Due to package dependencies, there might be compatibility issues with other pre-installed packages. インストール後、次の Python notebook でコマンドを実行して、インストールされているバージョンを確認できます。After installation, you can verify the installed version by executing the command below in a Python notebook:

import tensorflow as tf
print([tf.__version__, tf.test.is_gpu_available()])

Databricks Runtime 6.1 ML に 2.0 をインストールする。Install TensorFlow 2.0 on Databricks Runtime 6.1 ML

Azure Databricks では、 init スクリプトを使用して、DATABRICKS RUNTIME 6.1 ML に対して、この2.0 をインストールすることをお勧めします。Azure Databricks recommends installing TensorFlow 2.0 on Databricks Runtime 6.1 ML using an init script.

  • CPU クラスターの初期化スクリプト:Init script for CPU clusters:

    #!/bin/bash
    
    set -e
    
    conda install tensorflow-mkl=2.0 setuptools=41
    
  • GPU クラスター用の Init スクリプト:Init script for GPU clusters:

    #!/bin/bash
    
    set -e
    
    conda install tensorflow-gpu=2.0 setuptools=41
    

Databricks Runtime 6.1 に 2.0 をインストールする。Install TensorFlow 2.0 on Databricks Runtime 6.1

6.1 CPU クラスター Databricks Runtime は、 Databricks PyPI library: tensorflow==2.0.0 として、このを2.0 インストールします。On Databricks Runtime 6.1 CPU clusters, install TensorFlow 2.0 as a Databricks PyPI library: tensorflow==2.0.0.

Databricks Runtime 5.5 LTS ML へのインストールの2.0 インストールInstall TensorFlow 2.0 on Databricks Runtime 5.5 LTS ML

Azure Databricks は、 init スクリプトを使用して、DATABRICKS RUNTIME 5.5 LTS ML に対して、この2.0 をインストールすることをお勧めします。Azure Databricks recommends installing TensorFlow 2.0 on Databricks Runtime 5.5 LTS ML using an init script.

  • CPU クラスターの初期化スクリプト:Init script for CPU clusters:

    #!/bin/bash
    
    set -e
    
    /databricks/python/bin/python -V
    . /databricks/conda/etc/profile.d/conda.sh
    conda install -y conda=4.6
    conda activate /databricks/python
    
    conda install -y tensorflow-mkl=2.0 setuptools=41
    
  • GPU クラスター用の Init スクリプト:Init script for GPU clusters:

    #!/bin/bash
    
    set -e
    
    /databricks/python/bin/python -V
    . /databricks/conda/etc/profile.d/conda.sh
    conda install -y conda=4.6
    conda activate /databricks/python
    
    conda install -y tensorflow-gpu=2.0 setuptools=41
    

Databricks Runtime 5.5 LTS ML へのインストールの1.14 インストールInstall TensorFlow 1.14 on Databricks Runtime 5.5 LTS ML

次のように、 Databricks PyPI ライブラリとして、Databricks Runtime 5.5 LTS ML にを1.14 インストールします。Install TensorFlow 1.14 on Databricks Runtime 5.5 LTS ML as a Databricks PyPI library:

  • CPU: tensorflow==1.14.0CPU: tensorflow==1.14.0
  • GPU: tensorflow-gpu==1.14.0GPU: tensorflow-gpu==1.14.0

Databricks Runtime 5.5 LTS に、"2.0" をインストールします。Install TensorFlow 2.0 on Databricks Runtime 5.5 LTS

Azure Databricks では、 init スクリプトを使用して、DATABRICKS RUNTIME 5.5 LTS に対して、この2.0 をインストールすることをお勧めします。Azure Databricks recommends installing TensorFlow 2.0 on Databricks Runtime 5.5 LTS using an init script.

  • CPU クラスターの初期化スクリプト:Init script for CPU clusters:

    #!/bin/bash
    
    set -e
    
    /databricks/python/bin/python -V
    /databricks/python/bin/pip install pip==19.*
    /databricks/python/bin/pip install tensorflow==2.0.0
    
  • GPU クラスター用の Init スクリプト:Init script for GPU clusters:

    #!/bin/bash
    
    set -e
    
    apt-get update
    apt-get install -y gnupg-curl
    
    wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/cuda-repo-ubuntu1604_10.0.130-1_amd64.deb
    dpkg -i cuda-repo-ubuntu1604_10.0.130-1_amd64.deb
    apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/7fa2af80.pub
    
    wget http://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1604/x86_64/nvidia-machine-learning-repo-ubuntu1604_1.0.0-1_amd64.deb
    dpkg -i nvidia-machine-learning-repo-ubuntu1604_1.0.0-1_amd64.deb
    
    apt-get update
    apt-get install -y --no-install-recommends cuda-libraries-10-0 libcudnn7=7.4.2.24-1+cuda10.0
    
    /databricks/python/bin/python -V
    /databricks/python/bin/pip install pip==19.*
    /databricks/python/bin/pip install tensorflow-gpu==2.0.0
    

Databricks Runtime 5.5 LTS に、"1.14" をインストールします。Install TensorFlow 1.14 on Databricks Runtime 5.5 LTS

  • CPU クラスター: Databricks PyPI library: tensorflow==1.14.0 として1.14 インストールすることができます。この場合、クラスターには、 Databricks ライブラリユーティリティを使用して、ライブラリを Python notebook セッションにインストールします。CPU clusters: you can install TensorFlow 1.14 as a Databricks PyPI library: tensorflow==1.14.0 on the cluster or use Databricks library utilities to install the library in a Python notebook session:

    dbutils.library.installPyPI("tensorflow", version="1.14.0")
    dbutils.library.restartPython()
    
  • GPU クラスター: 次の init スクリプトを使用して、次の初期スクリプトを使用して、このスクリプトを1.14 インストールする:GPU clusters: install TensorFlow 1.14 using the following init script:

    #!/bin/bash
    
    set -e
    
    apt-get update
    apt-get install -y gnupg-curl
    
    wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/cuda-repo-ubuntu1604_10.0.130-1_amd64.deb
    dpkg -i cuda-repo-ubuntu1604_10.0.130-1_amd64.deb
    apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/7fa2af80.pub
    
    wget http://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1604/x86_64/nvidia-machine-learning-repo-ubuntu1604_1.0.0-1_amd64.deb
    dpkg -i nvidia-machine-learning-repo-ubuntu1604_1.0.0-1_amd64.deb
    
    apt-get update
    apt-get install -y --no-install-recommends cuda-libraries-10-0 libcudnn7=7.4.2.24-1+cuda10.0
    
    /databricks/python/bin/python -V
    /databricks/python/bin/pip install tensorflow-gpu==1.14.0
    

既知の問題 Known issues

この2.0.0 には、Python pickling との互換性がないことがわかっています。TensorFlow 2.0.0 has a known incompatibility with Python pickling. PySpark、 HorovodRunnerhyperopt、または pickling に依存するその他のパッケージを使用すると、この問題が発生する可能性があります。You might encounter it if you use PySpark, HorovodRunner, Hyperopt, or any other packages that depend on pickling. 回避策としては、関数内で、"整理" モジュールを明示的にインポートします。The workaround is to explicitly import TensorFlow modules inside your functions. 次に例を示します。Here is an example:

import tensorflow as tf

def bad_func(_):
  tf.keras.Sequential()

# You might see an error.
sc.parallelize(range(0)).foreach(bad_func)

def good_func(_):
  import tensorflow as tf
  tf.keras.some_func

# No error.
sc.parallelize(range(0)).foreach(good_func)

全画面 TensorBoard

このようにして、パッケージ化された一連の視覚化ツールを、デバッグ、最適化、および理解することができます。TensorBoard is TensorFlow’s suite of visualization tools for debugging, optimizing, and understanding TensorFlow programs.

注意

  • Databricks Runtime バージョン5.0 以降では、管理対象ボードがサポートされています。TensorBoard is supported in Databricks Runtime versions 5.0 and above. 以前のバージョン (Databricks Runtime 4.3、Databricks Runtime 4.1 ML など) には、このようなサポートは含まれていません。Earlier versions, including Databricks Runtime 4.3 and Databricks Runtime 4.1 ML, do not include TensorBoard support.
  • Databricks PyPI ライブラリとして、をインストールする必要があります。You must install TensorFlow as a Databricks PyPI library.

使用しているボードの使用Using TensorBoard

Notebook から整理ツールを起動するには、dbutils.tensorboard ユーティリティを使用します。To start TensorBoard from your notebook, use the dbutils.tensorboard utility.

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

このコマンドを実行すると、リンクが表示されます。このリンクをクリックすると、新しいタブで [表示] が開きます。This command displays a link that, when clicked, opens TensorBoard in a new tab.

no-alternative-textno-alternative-text

「」では、「」と同じログディレクトリ (たとえば、tf.summary.FileWriter("/tmp/tensorflow_log_dir", graph=sess.graph)) で作成したのと同じログディレクトリからの読み取りを行います。TensorBoard reads from the same log directory that you write to in TensorFlow (for example, tf.summary.FileWriter("/tmp/tensorflow_log_dir", graph=sess.graph)). 最適なパフォーマンスを得るには、ドライバーのローカルディレクトリ (たとえば、/tmp/tensorflow_log_dir) を使用してログファイルを保存し、必要に応じて永続的なストレージにコピーすることをお勧めします。For the best performance, we recommend you use a local directory on the driver, for example, /tmp/tensorflow_log_dir, to store your log files and copy to persistent storage as needed.

dbutils.tensorboard.stop() によって停止するか、クラスターをシャットダウンするまで、このボードは引き続き実行されます。TensorBoard continues to run until you either stop it with dbutils.tensorboard.stop() or you shut down your cluster. 1つのクラスターで実行できるのは、一度に1つのクラスターでのみです。Only one instance of TensorBoard can run on a cluster at a time.

注意

Databricks ライブラリとしてのクラスターに [転送フロー] をアタッチする場合は、登録を開始する前にノートブックの再アタッチが必要になることがあります。If you attach TensorFlow to your cluster as a Databricks library, you may need to reattach your notebook before starting TensorBoard.

1つのノードでの すべての転送フローを使用する。Use TensorFlow on a single node

シングルコンピューターのフルフローワークフローをテストして移行するには、ワーカーの数をゼロに設定して、Azure Databricks のドライバー専用クラスターから開始できます。To test and migrate single-machine TensorFlow workflows, you can start with a driver-only cluster on Azure Databricks by setting the number of workers to zero. この設定では Apache Spark が機能していませんが、単一コンピューターのフルフローワークフローを実行するコスト効率に優れた方法です。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.

このノートブックは、TensorFlow notebook

ノートブックを入手Get notebook

Spark による転送フローのデータ変換 Spark-TensorFlow data conversion

sparkは、このライブラリを使用して、Spark Dataframes tfrecordsの間の変換を可能にします (これは、一般に、保存のためにデータを格納するための一般的な形式です)。spark-tensorflow-connector is a library within the TensorFlow ecosystem that enables conversion between Spark DataFrames and TFRecords (a popular format for storing data for TensorFlow). Spark データフレーム Api を使用すると、Spark の "Api" Api を使用して、TFRecords ファイルを Dataframes に読み取り、TFRecords として書き込むことができます。With spark-tensorflow-connector, you can use Spark DataFrame APIs to read TFRecords files into DataFrames and write DataFrames as TFRecords.

インストールInstallation

注意

Spark が提供する Databricks Runtime ML に含まれるのは、機械学習とデータサイエンス用の準備が整った環境を提供する machine learning ランタイムです。The spark-tensorflow-connector library is included in Databricks Runtime ML, a machine learning runtime that provides a ready-to-go environment for machine learning and data science. 以下の手順を使用してライブラリをインストールする代わりに、Databricks Runtime ML を使用してクラスターを作成するだけで済みます。Instead of installing the library using the instructions below, you can simply create a cluster using Databricks Runtime ML. Databricks Runtime for Machine Learning」を参照してください。See Databricks Runtime for Machine Learning.

Azure Databricks で spark の整理を使用するには、プロジェクトの JAR をローカルにビルドして Azure Databricks にアップロードし、それをライブラリとしてクラスターにアタッチする必要があります。To use spark-tensorflow-connector on Azure Databricks, you’ll need to build the project JAR locally, upload it to Azure Databricks, and attach it to your cluster as a library.

  1. パスに Maven があることを確認します (必要に応じてmaven のインストール手順を参照してください)。Ensure you have Maven in your PATH (see the Maven installation instructions if needed).

  2. 次のようにして、[spark-tensorflow-connector] サブディレクトリに、このリポジトリとcd を複製します。Clone the TensorFlow ecosystem repository and cd into the spark-tensorflow-connector subdirectory:

    git clone https://github.com/tensorflow/ecosystem
    cd ecosystem/spark/spark-tensorflow-connector
    
  3. README の指示に従って、プロジェクトをローカルにビルドします。Follow the instructions in the README to build the project locally. ビルドを成功させるには、テストが連続して実行されるようにテスト構成の変更が必要になることがあります。For the build to succeed, you may need to modify the test configuration so that tests run serially. これを行うには、ecosystem/spark/spark-tensorflow-connector/pom.xmlscalatest プラグインに <configuration> タグを追加します。You can do this by adding a <configuration> tag to the scalatest plugin in ecosystem/spark/spark-tensorflow-connector/pom.xml:

    <configuration>
       <parallel>false</parallel>
    </configuration>
    

    ビルドコマンドは、次の例のように、spark によって実行されるフローコネクタ JAR のパスを出力します。The build command prints the path of the spark-tensorflow-connector JAR, for example:

    Installing /Users/<yourusername>/ecosystem/spark/spark-tensorflow-connector/target/spark-tensorflow-connector_2.11-1.6.0.jar
    to /Users/<yourusername>/.m2/repository/org/tensorflow/spark-tensorflow-connector_2.11/1.6.0/spark-tensorflow-connector_2.11-1.6.0.jar
    
  4. この JAR をライブラリとして Azure Databricks にアップロードし、クラスターにアタッチします。Upload this JAR to Azure Databricks as a library and attach it to your cluster. これでサンプル notebook を実行できるようになりました (例: spark によって結合されています)。You should now be able to run the example notebook (adapted from the spark-tensorflow-connector usage examples):

spark-転送フローコネクタノートブックspark-tensorflow-connector notebook

ノートブックを入手Get notebook