Vla*_*-HC 6 python-3.x tensorflow
这可能完全是菜鸟问题,与 python 模块导入有关,但我不明白为什么以下内容有效:
> import tensorflow as tf
> f = tf.train.Feature()
> from tensorflow import train
> f = train.Feature()
Run Code Online (Sandbox Code Playgroud)
但是下面的语句会导致错误:
> from tensorflow.train import Feature
ModuleNotFoundError: No module named 'tensorflow.train'
Run Code Online (Sandbox Code Playgroud)
请有人解释一下为什么它不能这样工作?我的目标是在代码中使用更短的符号,如下所示:
> example = Example(
features=Features(feature={
'x1': Feature(float_list=FloatList(value=feature_x1.ravel())),
'x2': Feature(float_list=FloatList(value=feature_x2.ravel())),
'y': Feature(int64_list=Int64List(value=label))
})
)
Run Code Online (Sandbox Code Playgroud)
张量流版本是 1.7.0
代替
from tensorflow.train import Feature
Run Code Online (Sandbox Code Playgroud)
和
from tensorflow.core.example.feature_pb2 import Feature
Run Code Online (Sandbox Code Playgroud)
一般来说,你必须记住,例如:
from tensorflow import train
Run Code Online (Sandbox Code Playgroud)
实际上是一个别名
from tensorflow.python.training import training
Run Code Online (Sandbox Code Playgroud)
您可以通过打印模块轻松检查真正的模块名称。对于当前示例,您将获得:
from tensorflow import train
print (train)
<module 'tensorflow.python.training.training' from ....
Run Code Online (Sandbox Code Playgroud)
在 Tensorflow 1.7 中,您不能使用from tensorflow.train import Feature,因为该from子句需要一个实际的模块名称(而不是别名)。鉴于train是一个别名,你会得到一个ImportError.
通过做
from tensorflow import train
print (train.Feature)
<class 'tensorflow.core.example.feature_pb2.Feature'>
Run Code Online (Sandbox Code Playgroud)
您将获得train. 现在,您可以使用上面解决方案中所示的导入路径。
在 TensorFlow 1.9.0 中,from tensorflow.train import Feature会起作用,因为它tensorflow.train是一个实际的包,因此您可以导入它。(这是我在已安装的 Tensorflow 1.9.0 以及文档中看到的,但在 Github 存储库中没有看到。它必须在某处生成。)
您可以在文档中找到完整的模块路径。每个模块都有一个“定义于”部分。见下图(取自模块:tf.train):
| 归档时间: |
|
| 查看次数: |
1262 次 |
| 最近记录: |