WSL で DirectML を使った TensorFlow を有効にする
Windows 11 および Windows 10 のバージョン 21H2 では、TensorFlow 1.15 用の DirectML を使った TensorFlow パッケージを使用して、既存のハードウェアで機械学習 (ML) トレーニングを実行する方法を学生、初心者、専門家に提供します。 TensorFlow 2 で DirectML を使用するには、TensorFlow-DirectML-Plugin を確認してください。 設定が完了したら、既存のモデル スクリプトを使用するか、DirectML リポジトリセットアップのいくつかのサンプルをご覧ください。
Windows 11 または Windows 10 のバージョン 21H2 をインストールする
これらの機能を使用するには、Windows 11 または Windows 10 のバージョン 21H2 をダウンロードしてインストールします。
最新の GPU ドライバーをインストールする
WSL 内に DirectML を使った TensorFlow パッケージをインストールする前に、GPU ハードウェア ベンダーから最新のドライバーをインストールする必要があります。 これらのドライバーを使用すると、Windows GPU が WSL で動作します。
設定アプリの [Windows Update] セクションで [更新プログラムのチェック] を選択するか、GPU ハードウェア ベンダーの Web サイトを確認します。
AMD
Web サイトから AMD のドライバーをダウンロードしてインストールします。 この機能は、次のハードウェアでサポートされています。
- AMD Radeon™ RX シリーズと Radeon™ VII グラフィックス。
- AMD Radeon™ Pro シリーズのグラフィックス。
- Amd Ryzen™ および Ryzen™ PRO Processors と Radeon™ Vega グラフィックス。
- Amd Ryzen™ および Ryzen™ PRO Mobile Processors と Radeon™ Vega グラフィックス。
互換性のある AMD 製品の完全な一覧については、AMD リリース ノートを参照してください。
Intel
Web サイトから DirectML で使用する Intel のドライバーをダウンロードしてインストールします。
NVIDIA
Web サイトから DirectML で使用する NVIDIA のドライバーをダウンロードしてインストールします。 詳細については、「LINUX 用 Windows サブシステム (WSL) の NVIDIA の GPU」のページを参照してください。
DirectML を使った TensorFlow を設定する
WSL をインストールする
上記のドライバーをインストールしたら、WSL を有効にし、glibc ベースのディストリビューション (Ubuntu や Debian など) をインストールします。 テストでは、Ubuntu を使用しました。 設定 アプリの [Windows Update] セクションで [更新プログラムの確認] を選択して、最新のカーネルがあることを確認します。
Note
[Windows の更新時に他の Microsoft 製品の更新プログラムを受け取る] が有効になっていることを確認します。 設定 アプリの [Windows Update] セクション内の [詳細オプション] で確認できます。
これらの機能には、5.10.43.3 以降のカーネル バージョンが必要です。 バージョン番号は、PowerShell の次のコマンドを実行して確認できます。
wsl cat /proc/version
Python 環境を設定する
WSL インスタンス内に仮想 Python 環境を設定することをお勧めします。 仮想 Python 環境のセットアップに使用できるツールは多数あります — これらの手順では、Anaconda の Miniconda を使用します。 このセットアップの残りの部分では、miniconda 環境を使用するものとします。
Anaconda のサイトのガイダンスに従うか、WSL で次のコマンドを実行して、Miniconda をインストールします。
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
bash Miniconda3-latest-Linux-x86_64.sh
Miniconda が WSL にインストールされたら、Python を使用して directml という名前の環境を作成し、次のコマンドでアクティブにします。
Note
以下のコマンドでは、Python 3.6 を使用します。 ただし、tensorflow-directml パッケージは Python 3.5、3.6、または 3.7 環境で動作します。
conda create --name directml python=3.6
conda activate directml
DirectML を使った TensorFlow パッケージをインストールする
次のコマンドを実行して、DirectML を使った TensorFlow パッケージを pip でインストールします。
Note
tensorflow-directml パッケージでは、TensorFlow 1.15 のみがサポートされています。
pip install tensorflow-directml
tensorflow-directml パッケージをインストールしたら、2 つのテンソルを追加することで、正常に実行されることを確認できます。 以下の行を対話型の Python セッションにコピーします。
import tensorflow.compat.v1 as tf
tf.enable_eager_execution(tf.ConfigProto(log_device_placement=True))
print(tf.add([1.0, 2.0], [3.0, 4.0]))
DML デバイスで add 演算子を使った場合、次のような出力が表示されます。
2020-06-15 11:27:18.235973: I tensorflow/core/common_runtime/dml/dml_device_factory.cc:45] DirectML device enumeration: found 1 compatible adapters.
2020-06-15 11:27:18.240065: I tensorflow/core/common_runtime/dml/dml_device_factory.cc:32] DirectML: creating device on adapter 0 (AMD Radeon VII)
2020-06-15 11:27:18.323949: I tensorflow/stream_executor/platform/default/dso_loader.cc:60] Successfully opened dynamic library libdirectml.so.ba106a7c621ea741d21598708ee581c11918380
2020-06-15 11:27:18.337830: I tensorflow/core/common_runtime/eager/execute.cc:571] Executing op Add in device /job:localhost/replica:0/task:0/device:DML:0
tf.Tensor([4. 6.], shape=(2,), dtype=float32)
DirectML を使った TensorFlow のサンプルとフィードバック
サンプルを確認するか、既存のモデル スクリプトを利用してください。 問題が発生した場合や、DirectML を使った TensorFlow パッケージに関するフィードバックがある場合は、Microsoft のチームまでお問い合わせください。
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示