2017-02-27 197 views
3

Ubuntu 14.04。AttributeError:'模塊'對象沒有屬性'merge_all_summaries'

的Python 2.7.13 ::蟒蛇定製(64位)

我安裝Tensorflow按照教程:https://www.tensorflow.org/install/

當我進入

~/anaconda2/lib/python2.7/site-packages/tensorflow/examples/tutorials/mnist

,並嘗試運行已經存在python文件:

fully_connected_feed.py

我遇到了下面的AttributeError的

:~/anaconda2/lib/python2.7/site-packages/tensorflow/examples/tutorials/mnist$ python fully_connected_feed.py 
I tensorflow/stream_executor/dso_loader.cc:135] successfully opened CUDA library libcublas.so.8.0 locally 
I tensorflow/stream_executor/dso_loader.cc:135] successfully opened CUDA library libcudnn.so.5 locally 
I tensorflow/stream_executor/dso_loader.cc:135] successfully opened CUDA library libcufft.so.8.0 locally 
I tensorflow/stream_executor/dso_loader.cc:135] successfully opened CUDA library libcuda.so.1 locally 
I tensorflow/stream_executor/dso_loader.cc:135] successfully opened CUDA library libcurand.so.8.0 locally 
Extracting Mnist_data/train-images-idx3-ubyte.gz 
Extracting Mnist_data/train-labels-idx1-ubyte.gz 
Extracting Mnist_data/t10k-images-idx3-ubyte.gz 
Extracting Mnist_data/t10k-labels-idx1-ubyte.gz 
Traceback (most recent call last): 
    File "fully_connected_feed.py", line 229, in <module> 
    tf.app.run() 
    File "/home/hok/anaconda2/lib/python2.7/site-packages/tensorflow/python/platform/app.py", line 44, in run 
    _sys.exit(main(_sys.argv[:1] + flags_passthrough)) 
    File "fully_connected_feed.py", line 225, in main 
    run_training() 
    File "fully_connected_feed.py", line 154, in run_training 
    summary_op = tf.merge_all_summaries() 
AttributeError: 'module' object has no attribute 'merge_all_summaries' 

但在其他計算機上的相同的代碼成功運行。所以我認爲這一定是我電腦中的配置問題。

我已經按照相同的步驟多次安裝tensorflow並使用它運行一段時間的深度學習。但這是我第一次遇到這樣的問題。

谷歌有很多建議說這樣的AttributeError可能是python版本的問題。但事實並非如此。

+1

兩臺機器上的tensorflow版本是否相同? – Evert

+0

[Tensorflow:'module'object has no attribute'scalar \ _summary']可能重複(http://stackoverflow.com/questions/41066244/tensorflow-module-object-has-no-attribute-scalar-summary) –

回答

2

我已經在隊友的幫助下解決了這個問題。

這是tensorflow版本的問題。

前計算機的Tensorflow版本是0.12.1。在計算機遇到AttributeError的Tensorflow版本是1.0.0。這個新的張量流版本已經改變了一些Python api,所以AttributeError滿足了。


在這臺計算機,其滿足AttributeError的:

:~$ python 
Python 2.7.13 |Anaconda custom (64-bit)| (default, Dec 20 2016, 23:09:15) 
[GCC 4.4.7 20120313 (Red Hat 4.4.7-1)] on linux2 
Type "help", "copyright", "credits" or "license" for more information. 
Anaconda is brought to you by Continuum Analytics. 
Please check out: http://continuum.io/thanks and https://anaconda.org 
>>> import tensorflow as tf 
I tensorflow/stream_executor/dso_loader.cc:135] successfully opened CUDA library libcublas.so.8.0 locally 
I tensorflow/stream_executor/dso_loader.cc:135] successfully opened CUDA library libcudnn.so.5 locally 
I tensorflow/stream_executor/dso_loader.cc:135] successfully opened CUDA library libcufft.so.8.0 locally 
I tensorflow/stream_executor/dso_loader.cc:135] successfully opened CUDA library libcuda.so.1 locally 
I tensorflow/stream_executor/dso_loader.cc:135] successfully opened CUDA library libcurand.so.8.0 locally 
>>> __tf.version__ 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
NameError: name '__tf' is not defined 
>>> tf.__version__ 
'1.0.0' 
>>> 

在前者計算機:

:~$ python 
Python 2.7.13 |Anaconda 2.4.1 (64-bit)| (default, Dec 20 2016, 23:09:15) 
[GCC 4.4.7 20120313 (Red Hat 4.4.7-1)] on linux2 
Type "help", "copyright", "credits" or "license" for more information. 
Anaconda is brought to you by Continuum Analytics. 
Please check out: http://continuum.io/thanks and https://anaconda.org 
>>> import tensorflow as tf 
I tensorflow/stream_executor/dso_loader.cc:128] successfully opened CUDA library libcublas.so locally 
I tensorflow/stream_executor/dso_loader.cc:128] successfully opened CUDA library libcudnn.so locally 
I tensorflow/stream_executor/dso_loader.cc:128] successfully opened CUDA library libcufft.so locally 
I tensorflow/stream_executor/dso_loader.cc:128] successfully opened CUDA library libcuda.so.1 locally 
I tensorflow/stream_executor/dso_loader.cc:128] successfully opened CUDA library libcurand.so locally 
>>> tf.__version__ 
'0.12.1' 
>>> 
3

https://stackoverflow.com/a/40066895/4533188你可以回答類似的問題,讀了起來:答案是適當遷移。檢查出https://www.tensorflow.org/install/migration。在那裏,你看到

- tf.merge_summary 
    - should be renamed to tf.summary.merge 
- tf.train.SummaryWriter 
    - should be renamed to tf.summary.FileWriter 

Keras + TensorFlow: 「module 'tensorflow' has no attribute 'merge_all_summaries''」(其實SummaryWriter也被改變了。)所以,你應該可以,如果你的代碼

import tensorflow as tf 
tf.merge_all_summaries = tf.summary.merge_all 
tf.train.SummaryWriter = tf.summary.FileWriter 

之前寫來解決問題(我有同樣的問題)

相關問題