这在Python3中是合法的。
import keras
keras.preprocessing.sequence.pad_sequences(...)
但我必须将其更改为此才能在Python2中工作。
from keras.preprocessing import sequence
sequence.pad_sequences(...)
Keras有什么问题或者这是Python3中的新功能吗?
根据我的最佳知识,此问题尚未被提出过。对不起,如果这是一个愚蠢的问题,但我真的不知道我应该用什么关键词来搜索这个......
答案 0 :(得分:0)
这取决于模块。如果子模块的名称包含在模块__all__
的{{1}}中,您就可以按照预期的方式访问它。您可以在我的回答here中查看__init__.py
的工作原理。或者阅读the documentation on packages:
__all__
语句使用以下约定:如果包的import
代码定义了名为__init__.py
的列表,则它将被视为{{}时应导入的模块名称列表。遇到{1}}。在发布新版本的软件包时,由软件包作者决定是否保持此列表的最新状态。如果包装作者没有看到从包装中导入*的用途,也可能决定不支持它。
对于__all__
,模块似乎from package import *
:
keras
__init__.py
__all__