我使用的是cifar10 from tensorflow,并注意到模块distorted_inputs
和cifar10_input.py
中有两个名为cifar10.py
的函数。 cifar10_train.py
模块使用__init__.py
导入行:
# Copyright 2015 The TensorFlow Authors. All Rights Reserved.
...
==============================================================================
"""Makes helper libraries available in the cifar10 package."""
from __future__ import absolute_import
from __future__ import division
from __future__ import print_function
from tensorflow.models.image.cifar10 import cifar10
from tensorflow.models.image.cifar10 import cifar10_input
distorted_inputs
的不同功能如何不崩溃?这不是问题吗?
特别是cifar10_train.py
导入如下:
from tensorflow.models.image.cifar10 import cifar10
表示它加载__init__.py
。但是,当它这样做时,似乎有多个distorted_inputs
函数让我失望。
可以找到整个cifar库: https://github.com/tensorflow/tensorflow/tree/r0.11/tensorflow/models/image/cifar10
答案 0 :(得分:1)
一个是
cifar10_input.distorted_inputs()
另一个是
cifar10.distorted_inputs()
他们在不同的目录中,所以没关系。这就像将两个具有相同名称的文档保存在不同的文件夹中一样。
答案 1 :(得分:1)
如果您在区分两者时遇到问题,可以随时使用import cifar10 as c
和cifar10_input as cinput
但是像@rvictordelta所说,两者都应该可以正常工作,因为它们都在不同的目录中。
答案 2 :(得分:1)
如果从具有相同名称的不同模块导入两个函数,python将使用上次导入的方法
一个很好的例子
from math import *
from cmath import *
sin() # Python use sin from cmath not math module
同样适用于您的情况