我正在使用Keras子类化API创建自定义模型。我尝试使用以下方法并行化模型:
parallel_model = keras.utils.multi_gpu_model(subclassed_model, gpus=num_gpus)
但是我遇到以下错误:
line 203, in multi_gpu_model
for i in range(len(model.outputs)):
TypeError: object of type 'NoneType' has no len()
在仔细阅读文档之后,我注意到以下内容:
在子类化模型中,模型的拓扑定义为Python代码(而不是静态的层图)。这意味着无法检查或序列化模型的拓扑。结果,以下方法和属性不适用于子类模型:
model.inputs
和model.outputs
。
那么如何在多个GPU上训练子类化模型?请记住,我只对数据并行化感兴趣。