Tensorflow(python):" ValueError:除了连接轴之外的所有输入数组维度必须完全匹配"

时间:2017-04-03 15:30:46

标签: python arrays numpy tensorflow deep-learning

我正在尝试使用我自己的一组图像来实现具有单个隐藏层的神经网络,但是当我运行代码时出现此错误;

Traceback (most recent call last):
  File "mnist_tf.py", line 128, in <module>
    test_x, test_y = get_test(M)
  File "mnist_tf.py", line 61, in get_test
    batch_xs = np.vstack((batch_xs, ((array(M[test_k[k]])[:])/255.)  ))
  File "/home/user/tensorflow/local/lib/python2.7/site-packages/numpy/core/shape_base.py", line 288, in hstack
    return _nx.concatenate(arrs, 1)
ValueError: all the input array dimensions except for the concatenation axis must match exactly

我的图像数据(mat文件)包含以下格式;

有10个培训和测试集

train0  70x784 uint8
test0   26x784 uint8
train1  70x784 uint8
test1   55x784 uint8
train2  70x784 uint8
test2   8x784 uint8
...

我正在使用的代码可以在here中找到。我改变的只是输入文件,我将我的图像数据集作为mat文件而不是&#39; mnist_all.mat&#39;。错误发生在get_test()函数的第61行;

 batch_xs = np.vstack((batch_xs, ((array(M[test_k[k]])[:])/255.)  ))

我不太明白这部分正在做什么'((array(M[test_k[k]])[:])/255.)'。我知道有关阵列维度的连接问题,但我无法解决它。

非常感谢任何帮助

提前致谢。

编辑1: 这是我的数据集;

('M[test0] = ', array([[ array([[180, 111, 108, ..., 128, 149, 147],

       [249, 160, 192, ...,  88, 119, 185],

       [166, 164,  60, ...,  28,  73,  59],
       ..., 
       [  5,   8,   4, ...,  82, 101, 123],

       [ 14,  14,  14, ..., 166, 166, 170],

       [ 62,  42,  73, ...,   3,   6,  25]], dtype=uint8)]], dtype=object))

这是mnist_all数据集;

('M[test0] = ', array([[0, 0, 0, ..., 0, 0, 0],

       [0, 0, 0, ..., 0, 0, 0],

       [0, 0, 0, ..., 0, 0, 0],
       ..., 
       [0, 0, 0, ..., 0, 0, 0],

       [0, 0, 0, ..., 0, 0, 0],

       [0, 0, 0, ..., 0, 0, 0]], dtype=uint8))

0 个答案:

没有答案