0 votes
1 view
in Python by (11.5k points)

I'm trying to run a simple python script that uses Tensorflow to print the available GPU devices. The script is

from tensorflow.python.client import device_lib

def get_available_gpus():
    local_device_protos = device_lib.list_local_devices()
    return [x.name for x in local_device_protos if x.device_type == 'GPU']


I have the following related modules installed:

pip show tensorflow-gpu
Name: tensorflow-gpu
Version: 1.5.0
Summary: TensorFlow helps the tensors flow
Home-page: https://www.tensorflow.org/
Author: Google Inc.
Author-email: [email protected]
License: Apache 2.0
Location: /usr/local/lib/python3.5/dist-packages
Requires: wheel, six, tensorflow-tensorboard, numpy, absl-py, protobuf

However, when I run the script I get the following error:

python get_available_gpus.py
Traceback (most recent call last):
  File "get_available_gpus.py", line 2, in <module>
    from tensorflow.python.client import device_lib
ImportError: No module named tensorflow.python.client


1 Answer

0 votes
by (32.5k points)

According to me, it is a bug in Tensorflow and you should open a bug thread about it.

In any case, to work around this issue, you can use tf.identity to create a float64_ref instead of the float64 x and pass this value as the inputs parameter.

import tensorflow as tf

import numpy as np

with tf.Session() as sess:

    x = tf.Variable(np.ones((2, 3)))


    out, state = tf.nn.rnn_cell.BasicRNNCell(4)(tf.identity(x), x)

Welcome to Intellipaat Community. Get your technical queries answered by top developers !