2017-11-15 10 views
3

ご覧のとおり、このコードをcmd(win 10)で実行します。 "tensorflow.contrib"と "import tensorflow.python"の両方はOKですが、 "tensorflow.contrib"と "tensorflow.python"というコマンドは異なります。 1つはディレクトリを返し、もう1つはAttributeErrorを返します。AttributeError:モジュール 'tensorflow'には 'python'という属性はありません

誰かがヒントを持っていますか?

+0

私はpip install -U kerasはそれを行うべきだと思います –

+0

実際に私は最新のkerasモジュールを持っていますが、同じことに感謝します。 –

答えて

1

tensorflow.__init__()は、tensorflow.pythonモジュールへの参照を明示的に削除します。

その理由は、トップレベルtensorflow名前空間のpythonパッケージに含まれるサブモジュールへのアクセスを提供するためです。 tensorflow.coreパッケージのいくつかのものもインポートされ、tensorflow名前空間で利用できます。

tensorflow.pythonを直接インポートするとではないと思います。アプリケーションによって使用されることを意図したpythonのクラス、オブジェクト、およびサブモジュールは、単にimport tensorflowによって利用可能になります。

+0

ありがとう、私はこれが妥当だと思います。 –

+0

@mhawke私が気にすることは、 'import tensorflow.python'という文が' AttributeError'に通じないということです。あなたはそれについて説明してもらえますか? –

+0

@MrTsjolder:パッケージが存在するため、AttributeErrorなしでインポートが成功します。なぜそれが失敗するはずですか?というのも、 'import tensorflow.python'が実行されると、まず' tensorflow'がインポートされます。それ以前に 'tensorflow.python'が呼び出されます。 'tensorflow .__ init __。py'は' tensorflow.python'から望むものを明示的にインポートし、 'python'への参照を削除するので、インポートするコードの名前空間にはありません。 'tensorflow.python'は既にインポートされているので、再度インポートされないので、削除された参照は削除されたままです。 – mhawke