使用Keras在gpu上训练GANs:所有层名称对于discrimin都应该是唯一的

2024-10-01 09:40:31 发布

您现在位置:Python中文网/ 问答频道 /正文

我试着用Keras在GPU上训练一个简单的GAN。我验证了代码在我的笔记本电脑上运行。然后,我添加了multi_gpu_model,使其能够在一组gpu上运行。但是,我得到了以下错误:

RuntimeError: ('The name "Discriminator" is used 2 times in the model. All layer names should be unique. Layer names: ', ['input_3', 'input_4', 'lambda_3', 'lambda_4', 'lambda_5', 'lambda_6', 'model_3', 'Discriminator', 'Discriminator'])

这个错误似乎表明,因为我多次调用Discriminator模型,所以层的名称是重叠的。然而,我不清楚如何才能解决这个问题。为了您的方便,下面提供了完整的代码:

^{pr2}$

以下是完整的回溯:

Traceback (most recent call last):
  File "gangpu.py", line 278, in <module>
    gan = GANGPU('gan')
  File "gangpu.py", line 96, in __init__
    parallel_discriminator_model = multi_gpu_model(discriminator_model, gpus=2)
  File "/n/home06/koshiba/.conda/envs/Keras7/lib/python3.6/site-packages/keras/utils/multi_gpu_utils.py", line 189, in multi_gpu_model
    return Model(model.inputs, merged)
  File "/n/home06/koshiba/.conda/envs/Keras7/lib/python3.6/site-packages/keras/legacy/interfaces.py", line 91, in wrapper
    return func(*args, **kwargs)
  File "/n/home06/koshiba/.conda/envs/Keras7/lib/python3.6/site-packages/keras/engine/topology.py", line 1829, in __init__
    'Layer names: ', all_names)
RuntimeError: ('The name "Discriminator" is used 2 times in the model. All layer names should be unique. Layer names: ', ['input_3', 'input_4', 'lambda_3', 'lambda_4', 'lambda_5', 'lambda_6', 'model_3', 'Discriminator', 'Discriminator'])

Tags: lambdainpylayerinputmodelgpunames
1条回答
网友
1楼 · 发布于 2024-10-01 09:40:31

这只是一个猜测,我自己也无法测试它,但我觉得奇怪的是你用它来构建你的模型tf.装置然后尝试调用多个gpu的便利函数。所以你可以试着不放设备。在

相关问题 更多 >