Difference between installation libraries of Tensorflow GPU vs CPU

One thing to Note: CUDA can be installed even if you don't have a GPU in your system.

For packages tensorflow and tensorflow-gpu I hope this clears the confusion. yes/no means "Will the package work out of the box when executing import tensorflow as tf"? Here are the differences:

| Support for TensorFlow libraries | tensorflow | tensorflow-gpu  |
| for hardware type:               |    tf      |     tf-gpu      |
|----------------------------------|------------|-----------------|
| cpu-only                         |    yes     |   no (~tf-like) |
| gpu with cuda+cudnn installed    |    yes     |   yes           |
| gpu without cuda+cudnn installed |    yes     |   no (~tf-like) |

Edit: Confirmed the no answers on a cpu-only system and the gpu without cuda+cudnn installed (by removing CUDA+CuDNN env variables).

~tf-like means even though the library is tensorflow-gpu, it would behave like tensorflow library.


Just a quick (unnecessary?) note... from TensorFlow2.0 onwards these are not separated, and you simply install tensorflow (as this includes GPU support if you have an appropriate card/CUDA installed).