2016-11-14 33 views
0

我有走到一起的時候我試圖運行我的文件2個錯誤:Tensorflow:張量調整與RandomShuffleQueue錯誤一起超出範圍錯誤?

超出範圍:RandomShuffleQueue 「_1_input/shuffle_batch/random_shuffle_queue」被關閉,有 不足元素(請求1,電流大小爲0 )

'請求1'實際上是我的批量大小。我試圖減少我的batch_size爲1,看看是否再次發生錯誤。但是,我不確定爲什麼當前大小爲0。

InvalidArgumentError(參見上述用於回溯):輸入重塑是 張量357604倍的值,但所要求的形狀具有89401

我已提及一個較舊的螺紋: TensorFlow random_shuffle_queue is closed and has insufficient elements, 和我檢查過自從357604 = 89401 * 4以來我有類似的問題,所以我想知道4是從哪裏來的。

該線程確實提到,如果我將文件轉換爲int32中的TFrecords,然後使用uint8格式讀取它們,那麼我將獲得4倍以上的數據。但是,我無法知道在我的tfrecord文件創建中我使用的是int32。我試圖通過在uint8中有效地轉換我的tfrecords文件(使用tensorflow mnist文件中的DataSet類,即tensorflow.contrib.learn.python.learn.datasets import mnist,併爲我的數據集設置dtype = tf.uint8)來解決此問題,我得到了另一個新的錯誤,我不能識別:

tensorflow.python.framework.errors.InvalidArgumentError: Expected begin[0] == 0 (got 0) and size[0] == 0 (got 1) when input.dim_size(0) == 0 
    [[Node: softmax_cross_entropy_loss/Slice_3 = Slice[Index=DT_INT32, T=DT_INT32, _device="/job:localhost/replica:0/task:0/gpu:0"](softmax_cross_entropy_loss/Shape_3, softmax_cross_entropy_loss/Slice_3/begin, softmax_cross_entropy_loss/Slice_3/size)]] 

Caused by op u'softmax_cross_entropy_loss/Slice_3', defined at: 
    File "train.py", line 103, in <module> 
    FLAGS.log_dir) 
    File "train.py", line 88, in main 
    slim.losses.softmax_cross_entropy(predictions, labels) 
    File "/usr/local/lib/python2.7/dist-packages/tensorflow/contrib/losses/python/losses/loss_ops.py", line 385, in softmax_cross_entropy 
    return compute_weighted_loss(losses, weight) 
    File "/usr/local/lib/python2.7/dist-packages/tensorflow/contrib/losses/python/losses/loss_ops.py", line 144, in compute_weighted_loss 
    num_present = _num_present(losses, weight) 
    File "/usr/local/lib/python2.7/dist-packages/tensorflow/contrib/losses/python/losses/loss_ops.py", line 179, in _num_present 
    [0], [1]), []) 
    File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/ops/array_ops.py", line 431, in slice 
    return gen_array_ops._slice(input_, begin, size, name=name) 
    File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/ops/gen_array_ops.py", line 2234, in _slice 
    name=name) 
    File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/framework/op_def_library.py", line 749, in apply_op 
    op_def=op_def) 
    File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/framework/ops.py", line 2380, in create_op 
    original_op=self._default_original_op, op_def=op_def) 
    File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/framework/ops.py", line 1298, in __init__ 
    self._traceback = _extract_stack() 

InvalidArgumentError (see above for traceback): Expected begin[0] == 0 (got 0) and size[0] == 0 (got 1) when input.dim_size(0) == 0 
    [[Node: softmax_cross_entropy_loss/Slice_3 = Slice[Index=DT_INT32, T=DT_INT32, _device="/job:localhost/replica:0/task:0/gpu:0"](softmax_cross_entropy_loss/Shape_3, softmax_cross_entropy_loss/Slice_3/begin, softmax_cross_entropy_loss/Slice_3/size)]] 

我想創建一個模型使用TF最終苗條。由於TF-Slim庫上的教程非常少,我使用了 https://github.com/mnuke/tf-slim-mnist 的代碼作爲參考。我的大部分代碼示例都參考了此鏈接中的代碼。

+0

你能指出你正在執行的確切代碼嗎? – sygi

回答

1

我對第一個問題的猜測是,你需要做的:

sess.run(tf.initialize_local_variables()) 

此問題發生時,你不初始化Queue的歷元數。