2016-03-02 35 views
0

我想SVHN數據按照本教程設置分類: https://www.tensorflow.org/versions/0.6.0/tutorials/deep_cnn/index.htmlTensorflow:試圖SVHN通過編輯標籤0-9,仍然沒有工作

我使用train_32x32.mat文件。爲了與CNN代碼(如上所述)使用它,我將這筆.MAT文件的幾個.bin文件使用這個簡單的代碼:

import numpy as np 
import scipy.io 
from array import array 

read_input = scipy.io.loadmat('data/train_32x32.mat') 
j=0 
output_file = open('data_batch_%d.bin' % j, 'ab') 

for i in range(0, 64000): 

    # create new bin file 
    if i>0 and i % 12800 == 0: 
    output_file.close() 
    j=j+1 
    output_file = open('data_batch_%d.bin' % j, 'ab') 

    # Write to bin file 
    if read_input['y'][i] == 10: 
    read_input['y'][i] = 0 
    read_input['y'][i].astype('uint8').tofile(output_file) 
    read_input['X'][:,:,:,i].astype('uint32').tofile(output_file) 

output_file.close() 

但是,當我試圖使用這些定製.bin文件我進行分類SVHN 「米卡住,錯誤‘無效的說法:指數是無效的(出界)’如下:

Filling queue with 20000 CIFAR images before starting to train. This will take a few minutes. 
I tensorflow/core/common_runtime/local_device.cc:25] Local device intra op parallelism threads: 4 
I tensorflow/core/common_runtime/local_session.cc:45] Local session inter op parallelism threads: 4 
W tensorflow/core/common_runtime/executor.cc:1027] 0x1a53160 Compute status: Invalid argument: Indices are not valid (out of bounds). Shape: dim { size: 128 } dim { size: 10 } 
    [[Node: SparseToDense = SparseToDense[T=DT_FLOAT, Tindices=DT_INT32, _device="/job:localhost/replica:0/task:0/cpu:0"](concat, SparseToDense/output_shape, SparseToDense/sparse_values, SparseToDense/default_value)]] 
Traceback (most recent call last): 
    File "cifar10_train.py", line 138, in <module> 
    tf.app.run() 
    File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/platform/default/_app.py", line 11, in run 
    sys.exit(main(sys.argv)) 
    File "cifar10_train.py", line 134, in main 
    train() 
    File "cifar10_train.py", line 104, in train 
    _, loss_value = sess.run([train_op, loss]) 
    File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/client/session.py", line 345, in run 
    results = self._do_run(target_list, unique_fetch_targets, feed_dict_string) 
    File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/client/session.py", line 419, in _do_run 
    e.code) 
tensorflow.python.framework.errors.InvalidArgumentError: Indices are not valid (out of bounds). Shape: dim { size: 128 } dim { size: 10 } 
    [[Node: SparseToDense = SparseToDense[T=DT_FLOAT, Tindices=DT_INT32, _device="/job:localhost/replica:0/task:0/cpu:0"](concat, SparseToDense/output_shape, SparseToDense/sparse_values, SparseToDense/default_value)]] 
Caused by op u'SparseToDense', defined at: 
    File "cifar10_train.py", line 138, in <module> 
    tf.app.run() 
    File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/platform/default/_app.py", line 11, in run 
    sys.exit(main(sys.argv)) 
    File "cifar10_train.py", line 134, in main 
    train() 
    File "cifar10_train.py", line 76, in train 
    loss = cifar10.loss(logits, labels) 
    File "/home/sarah/Documents/SVHN/cifar10.py", line 364, in loss 
    dense_labels = tf.sparse_to_dense(concated,[FLAGS.batch_size, NUM_CLASSES],1.0, 0.0) 
    File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/ops/gen_sparse_ops.py", line 153, in sparse_to_dense 
    default_value=default_value, name=name) 
    File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/ops/op_def_library.py", line 633, in apply_op 
    op_def=op_def) 
    File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/framework/ops.py", line 1710, 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 988, in __init__ 
    self._traceback = _extract_stack() 

我發現TensorFlow CIFAR10 Example,類似的問題在計算器。但即使我改變了標籤,它仍然不起作用。

請讓我知道如果我做錯了什麼或不理解任何邏輯。

感謝

薩拉

回答

0

出事了與我的安裝Tensorflow的版本(可能是一個錯誤)。升級到新版本解決了這個問題。

謝謝

相關問題