Keras:TypeError:“模块”对象不可调用

2024-06-02 07:34:12 发布

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

我正在开发一个基于旧版Keras的模型,当我想使用多gpu时,他们会按如下方式导入:

from keras.utils import multi_gpu_model
 multi_model = multi_gpu_model(myModel, gpus=args.gpus)

我已将导入更改为:

from tensorflow.keras import utils as multi_gpu_model

这会导致我出错:

multi_model: TypeError: 'module' object is not callable

Tags: from模型importmodelgputensorflow方式args
2条回答

是的,Python的导入语法对于导入的内容有点含糊不清

在这里,您正在导入一个名为multi_gpu_model函数,该函数位于模块utils内,您可以知道,因为您可以调用multi_gpu_model

from keras.utils import multi_gpu_model

当您只需要几个特定的函数时,使用第一种方法。您仍然导入整个模块,但它没有绑定到供您使用的名称

这里您正在导入模块utils,并将其重命名为multi_gpu_model

from tensorflow.keras import utils as multi_gpu_model

不要使用第二种方法,您显然希望使用函数multi_gpu_model,但重命名模块时使用了名称

我怀疑您的意图是将模块绑定到一个名称,以便可以使用其所有功能。只要这样做:

from tensorflow.keras import utils

multi_model = utils.multi_gpu_model(myModel, gpus=args.gpus)

utils不是一个函数,请尝试:

from tensorflow.keras.utils import multi_gpu_model

或:

from tensorflow.keras.utils import multi_gpu_model as m_g_m

相关问题 更多 >