web-dev-qa-db-ja.com

「モジュール」オブジェクトには属性「SummaryWriter」がありません

Linux CentOS 7でPython 2.7でTensorflowバージョン0.12.headを使用しており、これを実行すると:

import tensorflow as tf

a = tf.constant(5, name="input_a")
b = tf.constant(3, name="input_b")
c = tf.mul(a, b, name="mul_c")
d = tf.add(a, b, name="add_d")
e = tf.add(c, d, name="add_e")
sess = tf.Session()
output = sess.run(e)
writer = tf.train.SummaryWriter('./my_graph', sess.graph)

私はこのエラーを受け取ります:

AttributeError                            Traceback (most recent call last) <ipython-input-6-29c037e85eec> in <module>()
----> 1 writer = tf.train.SummaryWriter('./my_graph', sess.graph)

AttributeError: 'module' object has no attribute 'SummaryWriter'

同じ問題のGithubにバグ issue があるため、これら2つのコマンドを実行しました。

>>> import six
>>> print(six.__version__)
1.10.0
>>> print(dir(six.moves.queue)) ['Empty', 'Full', 'LifoQueue', 'PriorityQueue', 'Queue', '__all__', '__builtins__', '__doc__', '__file__', '__name__', '__package__', '_threading', '_time', 'deque', 'heapq']
>>> print(six.moves.queue.__file__) /usr/lib64/python2.7/Queue.pyc

私はPythonとTensorflowが初めてです。このエラーを修正する方法を知っていますか?

SummaryWriterFileWriterに変更しました:

writer = tf.train.FileWriter('./my_graph', sess.graph)

そして、私は同じエラーを受け取りますが、FileWriter関数を使用します:

AttributeError                            Traceback (most recent call last)
<ipython-input-8-daa50ea2b8f9> in <module>()
----> 1 writer = tf.train.FileWriter('./my_graph', sess.graph)

AttributeError: 'module' object has no attribute 'FileWriter'

ターミナルでも実行しましたが、同じ結果が得られます。

[VansFannel@localhost ~]$ python
Python 2.7.5 (default, Nov  6 2016, 00:28:07) 
[GCC 4.8.5 20150623 (Red Hat 4.8.5-11)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import tensorflow as tf
W tensorflow/core/platform/cpu_feature_guard.cc:95] The TensorFlow library wasn't compiled to use SSE4.2 instructions, but these are available on your machine and could speed up CPU computations.
W tensorflow/core/platform/cpu_feature_guard.cc:95] The TensorFlow library wasn't compiled to use AVX instructions, but these are available on your machine and could speed up CPU computations.
>>> a = tf.constant(5, name="input_a")
>>> b = tf.constant(3, name="input_b")
>>> c = tf.mul(a, b, name="mul_c")
>>> d = tf.add(a, b, name="add_d")
>>> e = tf.add(c, d, name="add_e")
>>> sess = tf.Session()
>>> output = sess.run(e)
>>> writer = tf.train.FileWriter('./my_graph', sess.graph)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'module' object has no attribute 'FileWriter'
>>> 
31
VansFannel

tf.train.SummaryWriterは非推奨です。代わりにtf.summary.FileWriterを使用してください。

イベントファイルへの要約の追加

2016-11-30以降に削除されます。更新手順:tf.summary.FileWriterに切り替えてください。インターフェイスと動作は同じです。これは単なる名前変更です。

<TF Official Migration Page>✳︎には、現在廃止されている/名前が変更されたすべての関数が含まれています✳︎

64
l'L'l

TFの新しいバージョンでは、すべての サマリー関数の名前が変更されました

サマリー関数はtf.summary名前空間に統合されました。

 Deprecated                                               Replacement
----------------------------------------------------------------------------------
 tf.audio_summary                                         tf.summary.audio
 tf.contrib.deprecated.histogram_summary                  tf.summary.histogram
 tf.contrib.deprecated.scalar_summary                     tf.summary.scalar
 tf.histogram_summary                                     tf.summary.histogram
 tf.image_summary                                         tf.summary.image
 tf.merge_all_summaries                                   tf.summary.merge_all
 tf.merge_summary                                         tf.summary.merge
 tf.scalar_summary                                        tf.summary.scalar
 tf.train.SummaryWriter                                   tf.summary.FileWriter
----------------------------------------------------------------------------------
11
Salvador Dali

私は同じ問題を抱えていました...私はPython 3.5.2を使用しています...以下の解決策を参照してください...これがあなたのために働くことを願っています。それが私のためにした(それはtmpフォルダにログを作成します):

import tensorflow as tf
a = tf.constant(5, name="input_a")
b = tf.constant(3, name="input_a")
c = tf.multiply(a,b, name="mul_c")
d = tf.add(a,b, name="add_d")
e = tf.add(c,d, name="add_e")

sess = tf.Session()
sess.run(e)
output = sess.run(e)

writer = tf.summary.FileWriter('/tmp/tensorflow_logs', graph=sess.graph)

print(sess.run(e))
3
Ken M