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_save
uses 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=True
totf.data.Dataset.load
allows 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
DebuggerOptions
of TensorFlow Quantizer, and migrate toDebuggerConfig
of 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
FullyConnected
layer is switched from per-tensor to per-channel scales for dynamic range quantization use case (float32
inputs / outputs andint8
weights). 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
TfLiteRegistrationExternal
type 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_features
to enable all default delegate features. - Flatbuffer version update:
GetTemporaryPointer()
bug fixed.
- Quantization for
-
tf.data
- Add
wait
totf.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 isFalse
for backward compatibility. Users ofdistributed_save
are recommended to set it toTrue
.
- Add
-
tf.tpu.experimental.embedding.TPUEmbeddingV2
- Add
compute_sparse_core_stats
for sparse core users to profile the data with this API to get themax_ids
andmax_unique_ids
. These numbers will be needed to configure the sparse core embedding mid level api. - Remove the
preprocess_features
method 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