Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

experimental_list_devices attribute missing in tensorflow_core._api.v2.config

Am using tensorflow 2.1 on Windows 10. On running

model.add(Conv3D(16, (22, 5, 5), strides=(1, 2, 2), padding='valid',activation='relu',data_format= "channels_first", input_shape=input_shape))

on spyder, I get the this error:

{ AttributeError: module 'tensorflow_core._api.v2.config' has no attribute 'experimental_list_devices' }

How can I solve this error?

like image 322
Eda Avatar asked Mar 07 '20 19:03

Eda


2 Answers

I found the answer here - https://github.com/keras-team/keras/issues/13684. I had the same issue for load_model() from keras under Anaconda:

AttributeError: module 'tensorflow_core._api.v2.config' has no attribute 'experimental_list_devices'

I found source of problem in

...\anaconda3\envs\tf_env\Lib\site-packages\keras\backend\tensorflow_backend.py

In line 506 I changed line

_LOCAL_DEVICES = tf.config.experimental_list_devices()

to

devices = tf.config.list_logical_devices()

_LOCAL_DEVICES = [x.name for x in devices]

And it works

like image 62
Georgiy Kormakov Avatar answered Oct 30 '22 15:10

Georgiy Kormakov


For jupyter user you can use this:-

import tensorflow as tf
import keras.backend.tensorflow_backend as tfback

print("tf.__version__ is", tf.__version__)
print("tf.keras.__version__ is:", tf.keras.__version__)

def _get_available_gpus():
    """Get a list of available gpu devices (formatted as strings).

    # Returns
        A list of available GPU devices.
    """
    #global _LOCAL_DEVICES
    if tfback._LOCAL_DEVICES is None:
        devices = tf.config.list_logical_devices()
        tfback._LOCAL_DEVICES = [x.name for x in devices]
    return [x for x in tfback._LOCAL_DEVICES if 'device:gpu' in x.lower()]

tfback._get_available_gpus = _get_available_gpus
like image 7
SUMIT YADAV Avatar answered Oct 30 '22 15:10

SUMIT YADAV