我正在开发一个基于旧版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
是的,Python的导入语法对于导入的内容有点含糊不清
在这里,您正在导入一个名为
multi_gpu_model
的函数,该函数位于模块utils
内,您可以知道,因为您可以调用multi_gpu_model
:当您只需要几个特定的函数时,使用第一种方法。您仍然导入整个模块,但它没有绑定到供您使用的名称
这里您正在导入模块
utils
,并将其重命名为multi_gpu_model
:不要使用第二种方法,您显然希望使用函数
multi_gpu_model
,但重命名模块时使用了名称我怀疑您的意图是将模块绑定到一个名称,以便可以使用其所有功能。只要这样做:
utils不是一个函数,请尝试:
或:
相关问题 更多 >
编程相关推荐