TensorFlow
update
machine learning
software
tutorial

Update TensorFlow

ML System Design practice on Codemia

Design recommenders, ranking systems and training pipelines the way ML interviews actually ask for them, with worked solutions.

Practice ML system design

Introduction

Updating TensorFlow is done with pip install --upgrade tensorflow. Before upgrading, check your current version, review the release notes for breaking changes, and test your code in a virtual environment. Major version upgrades (1.x to 2.x) require code migration, while minor upgrades (2.15 to 2.16) are usually backward-compatible. For GPU support, install tensorflow[and-cuda] (TF 2.15+) or the separate tensorflow-gpu package (pre-2.15).

Check Current Version

bash
1# Check installed version
2pip show tensorflow
3
4# Or from Python
5python -c "import tensorflow as tf; print(tf.__version__)"
6
7# Check available versions on PyPI
8pip index versions tensorflow

Basic Upgrade

bash
1# Upgrade to the latest stable version
2pip install --upgrade tensorflow
3
4# Upgrade to a specific version
5pip install tensorflow==2.16.1
6
7# Upgrade with GPU support (TF 2.15+)
8pip install --upgrade "tensorflow[and-cuda]"
9
10# Pre-2.15 GPU version (separate package)
11pip install --upgrade tensorflow-gpu
bash
1# Create a fresh environment for testing
2python -m venv tf_upgrade_test
3source tf_upgrade_test/bin/activate   # Linux/macOS
4# tf_upgrade_test\Scripts\activate    # Windows
5
6# Install the new version
7pip install tensorflow==2.16.1
8
9# Test your code
10python -c "import tensorflow as tf; print(tf.__version__)"
11python your_training_script.py
12
13# If everything works, upgrade your main environment
14deactivate

Testing in a virtual environment prevents breaking your working setup if the new version has incompatibilities.

Upgrade with Conda

bash
1# Conda environment
2conda update tensorflow
3
4# Or specify version
5conda install tensorflow=2.16.1
6
7# Create a new conda env for testing
8conda create -n tf_test python=3.11 tensorflow=2.16.1
9conda activate tf_test

Handle Dependency Conflicts

bash
1# If pip reports dependency conflicts, try:
2pip install --upgrade tensorflow --force-reinstall
3
4# Or install with all dependencies refreshed
5pip install --upgrade tensorflow numpy protobuf keras
6
7# Check for conflicts after install
8pip check
9
10# If protobuf version conflicts arise
11pip install "protobuf>=3.20,<5.0"

Migration from TF1 to TF2

python
1# TF2 migration tool — automatically updates TF1 code
2# Run from command line:
3# tf_upgrade_v2 --infile old_script.py --outfile new_script.py
4
5# Common TF1 → TF2 changes:
6# tf.Session() → tf.function / eager execution
7# tf.placeholder → function arguments
8# tf.variable_scope → tf.Module or Keras layers
9# tf.contrib → removed (use tfa or separate packages)
10
11# Example TF1 code:
12import tensorflow.compat.v1 as tf
13tf.disable_eager_execution()
14
15x = tf.placeholder(tf.float32, [None, 784])
16W = tf.Variable(tf.zeros([784, 10]))
17y = tf.matmul(x, W)
18
19with tf.Session() as sess:
20    sess.run(tf.global_variables_initializer())
21    result = sess.run(y, feed_dict={x: data})
22
23# Equivalent TF2 code:
24import tensorflow as tf
25
26W = tf.Variable(tf.zeros([784, 10]))
27
28@tf.function
29def predict(x):
30    return tf.matmul(x, W)
31
32result = predict(data)

Upgrade Keras Alongside TensorFlow

bash
1# TF 2.16+ uses standalone Keras 3
2pip install --upgrade tensorflow keras
3
4# Check Keras version
5python -c "import keras; print(keras.__version__)"
6
7# For TF 2.15 and earlier, Keras is bundled
8# tf.keras IS Keras — no separate install needed

Starting with TensorFlow 2.16, Keras 3 is the default Keras implementation. Keras 3 supports multiple backends (TensorFlow, JAX, PyTorch), which may require code adjustments.

Verify GPU Support After Upgrade

python
1import tensorflow as tf
2
3# Check if GPU is available
4print("GPUs available:", tf.config.list_physical_devices('GPU'))
5print("Built with CUDA:", tf.test.is_built_with_cuda())
6
7# Quick GPU test
8if tf.config.list_physical_devices('GPU'):
9    with tf.device('/GPU:0'):
10        a = tf.random.normal([1000, 1000])
11        b = tf.random.normal([1000, 1000])
12        c = tf.matmul(a, b)
13        print("GPU computation successful")
14else:
15    print("No GPU detected — check CUDA/cuDNN installation")

Downgrade if Needed

bash
1# Roll back to a previous version
2pip install tensorflow==2.15.0
3
4# Pin version in requirements.txt to prevent accidental upgrades
5echo "tensorflow==2.15.0" >> requirements.txt
6pip install -r requirements.txt

Version Compatibility Matrix

TensorFlowPythonCUDAcuDNN
2.16.x3.9 - 3.1212.38.9
2.15.x3.9 - 3.1112.28.9
2.14.x3.9 - 3.1111.88.7
2.13.x3.8 - 3.1111.88.6

Check the official TensorFlow build configurations for the exact CUDA/cuDNN versions required for your TensorFlow version.

Common Pitfalls

  • Upgrading without testing in a virtual environment: A TensorFlow upgrade can break existing code due to API changes, deprecated functions, or dependency conflicts. Always test in an isolated environment before upgrading your main project.
  • Mixing tensorflow and tensorflow-gpu packages: Since TF 2.15, GPU support is included in the main tensorflow package (with [and-cuda] extra). Installing both tensorflow and tensorflow-gpu causes conflicts. Uninstall tensorflow-gpu before upgrading.
  • Ignoring protobuf version conflicts: TensorFlow pins specific protobuf versions. Upgrading TensorFlow without upgrading protobuf (or vice versa) causes ImportError or TypeError. Let pip resolve dependencies or install compatible versions together.
  • Not updating CUDA/cuDNN for GPU TensorFlow: Each TensorFlow version requires specific CUDA and cuDNN versions. Upgrading TensorFlow without matching CUDA/cuDNN causes the GPU to not be detected. Check the compatibility matrix.
  • Assuming tf.compat.v1 will work forever: The TF1 compatibility layer is maintained but not actively developed. Deprecated functions may be removed in future versions. Migrate to TF2 APIs for long-term stability.

Summary

  • Use pip install --upgrade tensorflow to update to the latest version
  • Always test upgrades in a virtual environment before applying to your main project
  • For GPU support in TF 2.15+, use pip install "tensorflow[and-cuda]"
  • Use tf_upgrade_v2 to automatically migrate TF1 code to TF2
  • Check CUDA/cuDNN compatibility when upgrading GPU TensorFlow
  • Pin your TensorFlow version in requirements.txt to prevent unintended upgrades

Related reading
Free course
Beginner
7 lessons
2 hours
Tackling System Design Interview Problems

A short course that equips you with the skills to approach system design interviews methodically.

Start the free course
Track what you have practised

A free account saves your progress, solutions and study plan across every problem on Codemia.

ML System Design practice on Codemia

Design recommenders, ranking systems and training pipelines the way ML interviews actually ask for them, with worked solutions.

Practice ML system design

All Rights Reserved.