Keras multi_gpu_model возвращает сообщение об ошибке «tenorsflow_core._api.v2.config» не имеет атрибута «Экспериментальный список_устройств» - PullRequest
0 голосов
/ 24 марта 2020

У меня проблемы с обучением моей unet модели на обоих моих графических процессорах,

Модель представляет собой простую реализацию U- net, которая, как я знаю, работает, поскольку ее тестирование не является multi_gpu_model

train_generator = zip(image_generator, mask_generator)

with tf.device("/cpu:0"):
    # initialize the model
    model = unet((512,512,3))

# make the model parallel
model = multi_gpu_model(model, gpus=2)
model.compile(optimizer='adam', loss="mean_squared_error")

model.fit_generator(train_generator, steps_per_epoch=250, epochs=10)

:output
File "C:/Users/PycharmProjects/U-net/U-net.py", line 29, in <module>
    model = multi_gpu_model(model, gpus=2)
  File "C:\Users\AppData\Local\Programs\Python\Python37\lib\site-packages\keras\utils\multi_gpu_utils.py", line 150, in multi_gpu_model
    available_devices = _get_available_devices()
  File "C:\Users\AppData\Local\Programs\Python\Python37\lib\site-packages\keras\utils\multi_gpu_utils.py", line 16, in _get_available_devices
    return K.tensorflow_backend._get_available_gpus() + ['/cpu:0']
  File "C:\Users\AppData\Local\Programs\Python\Python37\lib\site-packages\keras\backend\tensorflow_backend.py", line 506, in _get_available_gpus
    _LOCAL_DEVICES = tf.config.experimental_list_devices()
AttributeError: module 'tensorflow_core._api.v2.config' has no attribute 'experimental_list_devices'

Я также попробовал tf.distributed.mirroredStrategy (), но также без везения

любая помощь будет принята с благодарностью

1 Ответ

1 голос
/ 24 марта 2020

exper_list_devices устарела в tf 2.1, используйте замену tf.config.list_logical_devices.

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 _LOCAL_DEVICES is None:
    if _is_tf_1():
        devices = get_session().list_devices()
        _LOCAL_DEVICES = [x.name for x in devices]
    else:
        devices = tf.config.list_logical_devices()
        _LOCAL_DEVICES = [x.name for x in devices]
return [x for x in _LOCAL_DEVICES if 'device:gpu' in x.lower()]

Ссылка полезна при решении вашей проблемы LINK

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...