我试着用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
模型,所以层的名称是重叠的。然而,我不清楚如何才能解决这个问题。为了您的方便,下面提供了完整的代码:
以下是完整的回溯:
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'])
这只是一个猜测,我自己也无法测试它,但我觉得奇怪的是你用它来构建你的模型tf.装置然后尝试调用多个gpu的便利函数。所以你可以试着不放设备。在
相关问题 更多 >
编程相关推荐