Skip to content

microsoft/tensorflow-directml

TensorFlow-DirectML

Warnings
⚠️ h5py 3.0.0 and 3.1.0 broke compatibility with TensorFlow. Please make sure that your environment has a different version of h5py before using TensorFlow-DirectML.

TensorFlow is an end-to-end open source platform for machine learning. This repository is a fork of tensorflow that leverages DirectML to provide cross-vendor hardware acceleration on Windows and the Windows Subsystem for Linux (WSL). TensorFlow with DirectML enables training and inference of complex machine learning models on a wide range of DirectX 12-compatible hardware.

Latest Release:
PyPI version

Questions, Issues, and Feedback

You can also contact us directly at askdirectml@microsoft.com.

Getting Started

TensorFlow with DirectML is supported on both the latest versions of Windows and the Windows Subsystem for Linux. For detailed instructions on getting started, see GPU accelerated ML training (docs.microsoft.com).

TensorFlow with DirectML is compatible with TensorFlow 1.15 and is supported for production use. Official Python packages are available on the tensorflow-directml PyPI project, and C library packages are available for download on GitHub.

The DirectML repository includes a few samples that have been tested to work with the latest builds on PyPI. These samples include both inference and training scripts, and you can either train the models from scratch or use the supplied pre-trained weights. However, we encourage testing on any TensorFlow 1.15-compatible models -- if you run into issues, please let us know!

The following resources provide additional background on DirectML and TensorFlow:

System Requirements

Windows

  • Windows 10 Version 1709, 64-bit (Build 16299 or higher) or Windows 11 Version 21H2, 64-bit (Build 22000 or higher)
  • Python x86-64 3.5, 3.6, or 3.71
  • One of the following supported GPUs:
    • AMD Radeon R5/R7/R9 2xx series or newer
    • Intel HD Graphics 5xx or newer
    • NVIDIA GeForce GTX 9xx series GPU or newer

1 Note: Python 3.8 or newer is not currently supported. To use the official PyPi packages, the CPython interpreter is required. NumPy 1.19.4 is requires the KB4598291 to properly work on Windows.

Windows Subsystem for Linux

  • Windows 10 Version 21H2, 64-bit (Build 20150 or higher) or Windows 11 Version 21H2, 64-bit (Build 22000 or higher)
  • Python x86-64 3.5, 3.6, or 3.72
  • One of the following supported GPUs:

2 Note: Python 3.8 or newer is not currently supported. To use the official PyPi packages, the CPython interpreter is required.

Contribute

If you would like to contribute to tensorflow-directml, please see our contribution guidelines and read the Microsoft Open Source Code of Conduct. We use GitHub issues for tracking requests and bugs. Please do not report security vulnerabilities through public GitHub issues. See SECURITY.md for more details.

See BUILD.md for instructions on how to produce private builds of tensorflow-directml.

License

This project is licensed under Apache License 2.0.

The tensorflow-directml Python wheel binary package includes a redistributable version of the DirectML library, which is downloaded automatically as a part of the build. The use of the redistributable DirectML library is governed by a separate license that is found as part of the package (found in tensorflow_core/python/DirectML_LICENSE.txt when extracted).

Data Collection Notice

The software may collect information about you and your use of the software and send it to Microsoft. Microsoft may use this information to provide services and improve our products and services. You may turn off the telemetry as described in the repository. There are also some features in the software that may enable you and Microsoft to collect data from users of your applications. If you use these features, you must comply with applicable law, including providing appropriate notices to users of your applications together with a copy of Microsoft's privacy statement. Our privacy statement is located at https://go.microsoft.com/fwlink/?LinkID=824704. You can learn more about data collection and use in the help documentation and our privacy statement. Your use of the software operates as your consent to these practices.

Disabling Telemetry

The official builds of tensorflow-directml (hosted on PyPI) have data collection enabled. This telemetry is enabled when building with --config=dml_telemetry (i.e. the --telemetry switch in build.py), but it is disabled by default for local builds.

Trademarks Notice

This project may contain trademarks or logos for projects, products, or services. Authorized use of Microsoft trademarks or logos is subject to and must follow Microsoft's Trademark & Brand Guidelines. Use of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship. Any use of third-party trademarks or logos are subject to those third-party's policies.

TensorFlow, the TensorFlow logo and any related marks are trademarks of Google Inc.