2016-12-28 100 views
4

我已經從教程here中的鏈接下載了CIFAR10代碼,並試圖運行本教程。我用命令運行它tensorflow cifar10教程失敗

python cifar10_train.py 

它開始正常並按預期下載數據文件。當它試圖打開它失敗,出現以下跟蹤輸入文件:

Traceback (most recent call last): 
    File "cifar10_train.py", line 120, in <module> 
    tf.app.run() 
    File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/platform/app.py", line 43, in run 
    sys.exit(main(sys.argv[:1] + flags_passthrough)) 
    File "cifar10_train.py", line 116, in main 
    train() 
    File "cifar10_train.py", line 63, in train 
    images, labels = cifar10.distorted_inputs() 
    File "/notebooks/Python Scripts/tensorflowModels/tutorials/image/cifar10/cifar10.py", line 157, in distorted_inputs 
    batch_size=FLAGS.batch_size) 
    File "/notebooks/Python Scripts/tensorflowModels/tutorials/image/cifar10/cifar10_input.py", line 161, in distorted_inputs 
    read_input = read_cifar10(filename_queue) 
    File "/notebooks/Python Scripts/tensorflowModels/tutorials/image/cifar10/cifar10_input.py", line 87, in read_cifar10 
    tf.strided_slice(record_bytes, [0], [label_bytes]), tf.int32) 
TypeError: strided_slice() takes at least 4 arguments (3 given) 

果然,當我調查的代碼存在cifar10_input.py調用strided_slice()只有3個參數:

tf.strided_slice(record_bytes, [0], [label_bytes]) 

雖然tensorflow文檔確實聲明必須至少有4個參數。

什麼問題?我已經下載了最新的tensorflow(0.12),我正在運行cifar代碼的主分支。

+1

這可能是他們的GitHub頁面上的一個問題。我看了幾個版本,他們都需要4個參數。 –

+0

謝謝。我已經添加了關於GitHub的討論並獲得了我在下面添加的解決方案(我認爲)。我仍然有點不確定爲什麼代碼處於非工作狀態,但目前似乎正在運行。 – BobbyG

回答

2

github一些討論中,我已經把下面的變化,這似乎使其工作:

在cifar10_input.py

- result.label = tf.cast(tf.strided_slice(record_bytes, [0], [label_bytes]), tf.int32) 
+ result.label = tf.cast(tf.slice(record_bytes, [0], [label_bytes]), tf.int32) 



- depth_major = tf.reshape(tf.strided_slice(record_bytes, [label_bytes], [label_bytes + image_bytes]),  [result.depth, result.height, result.width]) 
+ depth_major = tf.reshape(tf.slice(record_bytes, [label_bytes], [image_bytes]), [result.depth, result.height, result.width]) 

然後在這兩個cifar10_input.py和cifar10.py我有搜索「不推薦」和無論我在哪裏找到它,根據我在api指南中閱讀的內容(希望是正確的)替換爲有效的函數。這方面的例子:

- tf.contrib.deprecated.image_summary('images', images) 
+ tf.summary.image('images', images) 

- tf.contrib.deprecated.histogram_summary(tensor_name + '/activations', x) 
- tf.contrib.deprecated.scalar_summary(tensor_name + '/sparsity', 
+ tf.summary.histogram(tensor_name + '/activations', x) 
+ tf.summary.scalar(tensor_name + '/sparsity', 

看來現在愉快地被隆隆一起。我會看看它是否完成,如果我上面所做的更改給出了所需的診斷結果。

我仍然想聽到更接近代碼的人的明確答案。