2016-12-01 6 views
0

私はcifar10 from tensorflowを使用していましたが、モジュールcifar10_input.pycifar10.pyには、distorted_inputsという2つの機能があることに気付きました。ラインで__init__.pyを使用してcifar10_train.pyモジュールをインポート:Pythonは、同じ名前で定義されていて異なるモジュールからインポートされた2つの異なる関数を区別できますか?

# 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輸入特に

:それは__init__.pyをロードすることを意味する

from tensorflow.models.image.cifar10 import cifar10 

。しかし、それを行うと、私を捨てている複数のdistorted_inputs関数があるようです。


全体cifarライブラリを見つけることができます: https://github.com/tensorflow/tensorflow/tree/r0.11/tensorflow/models/image/cifar10

答えて

1

一つは cifar10_input.distorted_inputs() であり、他は彼らが別々のディレクトリにあるので、それは大丈夫だ cifar10.distorted_inputs()

です。同じ名前の2つの文書を別々のフォルダに保存しているようなものです。

+0

自分の状況に適用されます知っているが、列車のモジュールはパッケージ全体をインポートする。だから私はパッケージと '__init __。py'を参照しています。各モジュールを 'tensorflow.models.image.cifar10.cifar10'と' tensorflow.models.image.cifar10_input'から別々にインポートしたのであれば、それは明白でした。しかし、それは何が起こっているのではありません。 – Pinocchio

+0

@Pinocchio:「私は知っているが、電車のモジュールはパッケージ全体を輸入する」 - そうではない。また、あなたは「輸入」するつもりは言うまでもなく、「何でも」と言うだけではありません。 – user2357112

1

次の2つを区別する問題が発生した場合、あなたは常にだけimport cifar10 as c

cifar10_input as cinputを使用することができます。しかし@rvictordeltaが言ったように、彼らは両方が別々のディレクトリにあるように、両方が正常に動作する必要があります。

1

あなたは同じ名前のpythonを持つ別のモジュールからの2つの機能をインポートする場合、最後のインポートからメソッドを使用しようとしている

良い例

from math import * 
from cmath import * 
sin() # Python use sin from cmath not math module 

同じことが、私は

関連する問題