Search code examples
pythontensorflowgpuartificial-intelligence

Cant train with GPU in TensorFlow


I'm working on a CNN, and I noticed that during the training phase it uses CPU 100% instead of GPU (I have a GTX 1660Ti).

Tensorflow doesn't recognize my 1660Ti

I tried to follow this guide from TensorFlow website.

import tensorflow as tf
print("Num GPUs Available: ", len(tf.config.list_physical_devices('GPU')))

outputs

Num GPUs Available:  0

I tried to read all devices recognized by TensorFlow

tf.config.list_physical_devices()

outputs

[ PhysicalDevice(name='/physical_device:CPU:0', device_type='CPU') ]

What i read on the topic

Searching in the internet I found that maybe I had to install NVidia CUDA toolkit. I did it from here, but it didn't solve it.

I found that NVidia CUDA is not always enabled on all GPUs: source. I found that a little strange, why should NVidia cut off a part of their customers from using CUDA?

Additional informations

My requirements.txt (if software version can help to solve my problems):

matplotlib==3.4.2
keras==2.4.3
tensorflow-gpu==2.5.0
seaborn==0.11.1

I'm running the python code in a Jupyter Notebook (installed via pip)

My question

There's a way to use my GPU for CUDA (or at least use TensorFlow, like in this case)?


Solution

  • I Finally solved it.

    I had to download cuDNN from here, and following this installation guide I finally got it working.

    import tensorflow as tf
    print("Num GPUs Available: ", len(tf.config.list_physical_devices('GPU')))
    

    now outputs

    Num GPUs Available:  1
    

    and

    tf.config.list_physical_devices()
    

    now outputs

    [PhysicalDevice(name='/physical_device:CPU:0', device_type='CPU'),