TensorFlow 2.17.0
Release 2.17.0
TensorFlow
Breaking Changes
- GPU
- Support for NVIDIA GPUs with compute capability 5.x (Maxwell generation) has been removed from TF binary distributions (Python wheels).
Major Features and Improvements
-
Add
is_cpu_target_available, which indicates whether or not TensorFlow was built with support for a given CPU target. This can be useful for skipping target-specific tests if a target is not supported. -
tf.data- Support
data.experimental.distribued_save.distribued_saveuses tf.data service (https://www.tensorflow.org/api_docs/python/tf/data/experimental/service) to write distributed dataset snapshots. The call is non-blocking and returns without waiting for the snapshot to finish. Settingwait=Truetotf.data.Dataset.loadallows the snapshots to be read while they are being written.
- Support
Bug Fixes and Other Changes
-
GPU
- Support for NVIDIA GPUs with compute capability 8.9 (e.g. L4 & L40) has been added to TF binary distributions (Python wheels).
-
Replace
DebuggerOptionsof TensorFlow Quantizer, and migrate toDebuggerConfigof StableHLO Quantizer. -
Add TensorFlow to StableHLO converter to TensorFlow pip package.
-
TensorRT support: this is the last release supporting TensorRT. It will be removed in the next release.
-
NumPy 2.0 support: TensorFlow is going to support NumPy 2.0 in the next release. It may break some edge cases of TensorFlow API usage.
-
tf.lite- Quantization for
FullyConnectedlayer is switched from per-tensor to per-channel scales for dynamic range quantization use case (float32inputs / outputs andint8weights). The change enables new quantization schema globally in the converter and inference engine. The new behaviour can be disabled via experimental flagconverter._experimental_disable_per_channel_quantization_for_dense_layers = True. - C API:
- The experimental
TfLiteRegistrationExternaltype has been renamed asTfLiteOperator, and likewise for the corresponding API functions.
- The experimental
- The Python TF Lite Interpreter bindings now have an option
experimental_default_delegate_latest_featuresto enable all default delegate features. - Flatbuffer version update:
GetTemporaryPointer()bug fixed.
- Quantization for
-
tf.data- Add
waittotf.data.Dataset.load. IfTrue, for snapshots written withdistributed_save, it reads the snapshot while it is being written. For snapshots written with regularsave, it waits for the snapshot until it's finished. The default isFalsefor backward compatibility. Users ofdistributed_saveare recommended to set it toTrue.
- Add
-
tf.tpu.experimental.embedding.TPUEmbeddingV2- Add
compute_sparse_core_statsfor sparse core users to profile the data with this API to get themax_idsandmax_unique_ids. These numbers will be needed to configure the sparse core embedding mid level api. - Remove the
preprocess_featuresmethod since that's no longer needed.
- Add
Thanks to our Contributors
This release contains contributions from many people at Google, as well as:
Abdulaziz Aloqeely, Ahmad-M-Al-Khateeb, Akhil Goel, akhilgoe, Alexander Pivovarov, Amir Samani, Andrew Goodbody, Andrey Portnoy, Ashiq Imran, Ben Olson, Chao, Chase Riley Roberts, Clemens Giuliani, dependabot[bot], Dimitris Vardoulakis, Dragan Mladjenovic, ekuznetsov139, Elfie Guo, Faijul Amin, Gauri1 Deshpande, Georg Stefan Schmid, guozhong.zhuang, Hao Wu, Haoyu (Daniel), Harsha H S, Harsha Hs, Harshit Monish, Ilia Sergachev, Jane Liu, Jaroslav Sevcik, Jinzhe Zeng, Justin Dhillon, Kaixi Hou, Kanvi Khanna, LakshmiKalaKadali, Learning-To-Play, lingzhi98, Lu Teng, Matt Bahr, Max Ren, Meekail Zain, Mmakevic-Amd, mraunak, neverlva, nhatle, Nicola Ferralis, Olli Lupton, Om Thakkar, orangekame3, ourfor, pateldeev, Pearu Peterson, pemeliya, Peng Sun, Philipp Hack, Pratik Joshi, prrathi, rahulbatra85, Raunak, redwrasse, Robert Kalmar, Robin Zhang, RoboSchmied, Ruturaj Vaidya, sachinmuradi, Shawn Wang, Sheng Yang, Surya, Thibaut Goetghebuer-Planchon, Thomas Preud'Homme, tilakrayal, Tj Xu, Trevor Morris, wenchenvincent, Yimei Sun, zahiqbal, Zhu Jianjiang, Zoranjovanovic-Ns