Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Tensorflow:MNIST的无效辩论对手[55000]对[10000]_Python_Tensorflow - Fatal编程技术网

Python Tensorflow:MNIST的无效辩论对手[55000]对[10000]

Python Tensorflow:MNIST的无效辩论对手[55000]对[10000],python,tensorflow,Python,Tensorflow,我正在处理此演示文稿中的代码,并收到以下错误:InvalidArgumentError(回溯请参见上文):不兼容的形状:[55000]与[10000] 我已经解决了一些关于张量形状/维度的错误,但不知道如何具体理解,更不用说纠正了 我是tf的新手,非常感谢您的建议,以下是代码: # 1 ~ import tf + data import tensorflow as tf from tensorflow.examples.tutorials.mnist import input_data mni

我正在处理此演示文稿中的代码,并收到以下错误:
InvalidArgumentError(回溯请参见上文):不兼容的形状:[55000]与[10000]

我已经解决了一些关于张量形状/维度的错误,但不知道如何具体理解,更不用说纠正了

我是tf的新手,非常感谢您的建议,以下是代码:

# 1 ~ import tf + data
import tensorflow as tf
from tensorflow.examples.tutorials.mnist import input_data

mnist = input_data.read_data_sets("MNIST_data/", one_hot=True)

#2 ~ paras + init
X = tf.placeholder(tf.float32, [None, 784])
W = tf.Variable(tf.zeros([784, 10]))
b = tf.Variable(tf.zeros([10]))

init = tf.initialize_all_variables()

#3 ~ model + correct answers
Y = tf.nn.softmax(tf.matmul(X, W) + b)
Y_ = tf.placeholder(tf.float32, [None, 10]) # one-hot encoding

#4 ~ loss function
cross_entropy = -tf.reduce_sum(Y_ * tf.log(Y))

#5 ~ correct answer + % accuracy
is_correct = tf.equal(tf.argmax(Y, 1), tf.argmax(Y_, 1)) # one-hot decoding
accuracy = tf.reduce_mean(tf.cast(is_correct, tf.float32))

#6 ~ optimizer and training step
optimizer = tf.train.GradientDescentOptimizer(0.003) # learning-rate
train_step = optimizer.minimize(cross_entropy)

#7 ~ session and training loop
sess = tf.Session()
sess.run(init)

for i in range(1000):
    # load a batch of images and correct answers
    batch_X, batch_Y = mnist.train.next_batch(100)
    train_data = {X: batch_X, Y_: batch_Y}

    # train
    sess.run(train_step, feed_dict=train_data)

    # success?
    a,c = sess.run([accuracy, cross_entropy], feed_dict=train_data)

    # success on test data?
    test_data = {X: mnist.train.images, Y_: mnist.test.labels}
    a,c = sess.run([accuracy, cross_entropy], feed_dict=test_data)
总错误输出为:

Traceback (most recent call last):
      File "/Users/joelmcleod/anaconda3/lib/python3.5/site-packages/tensorflow/python/client/session.py", line 1021, in _do_call
    return fn(*args)
  File "/Users/joelmcleod/anaconda3/lib/python3.5/site-packages/tensorflow/python/client/session.py", line 1003, in _run_fn
    status, run_metadata)
  File "/Users/joelmcleod/anaconda3/lib/python3.5/contextlib.py", line 66, in __exit__
    next(self.gen)
  File "/Users/joelmcleod/anaconda3/lib/python3.5/site-packages/tensorflow/python/framework/errors_impl.py", line 469, in raise_exception_on_not_ok_status
    pywrap_tensorflow.TF_GetCode(status))
tensorflow.python.framework.errors_impl.InvalidArgumentError: Incompatible shapes: [55000] vs. [10000]
     [[Node: Equal = Equal[T=DT_INT64, _device="/job:localhost/replica:0/task:0/cpu:0"](ArgMax, ArgMax_1)]]

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "deep_nn1.py", line 71, in <module>
    a,c = sess.run([accuracy, cross_entropy], feed_dict=test_data)
  File "/Users/joelmcleod/anaconda3/lib/python3.5/site-packages/tensorflow/python/client/session.py", line 766, in run
    run_metadata_ptr)
  File "/Users/joelmcleod/anaconda3/lib/python3.5/site-packages/tensorflow/python/client/session.py", line 964, in _run
    feed_dict_string, options, run_metadata)
  File "/Users/joelmcleod/anaconda3/lib/python3.5/site-packages/tensorflow/python/client/session.py", line 1014, in _do_run
    target_list, options, run_metadata)
  File "/Users/joelmcleod/anaconda3/lib/python3.5/site-packages/tensorflow/python/client/session.py", line 1034, in _do_call
    raise type(e)(node_def, op, message)
tensorflow.python.framework.errors_impl.InvalidArgumentError: Incompatible shapes: [55000] vs. [10000]
     [[Node: Equal = Equal[T=DT_INT64, _device="/job:localhost/replica:0/task:0/cpu:0"](ArgMax, ArgMax_1)]]

Caused by op 'Equal', defined at:
  File "deep_nn1.py", line 47, in <module>
    is_correct = tf.equal(tf.argmax(Y, 1), tf.argmax(Y_, 1)) # one-hot decoding
  File "/Users/joelmcleod/anaconda3/lib/python3.5/site-packages/tensorflow/python/ops/gen_math_ops.py", line 728, in equal
    result = _op_def_lib.apply_op("Equal", x=x, y=y, name=name)
  File "/Users/joelmcleod/anaconda3/lib/python3.5/site-packages/tensorflow/python/framework/op_def_library.py", line 759, in apply_op
    op_def=op_def)
  File "/Users/joelmcleod/anaconda3/lib/python3.5/site-packages/tensorflow/python/framework/ops.py", line 2240, in create_op
    original_op=self._default_original_op, op_def=op_def)
  File "/Users/joelmcleod/anaconda3/lib/python3.5/site-packages/tensorflow/python/framework/ops.py", line 1128, in __init__
    self._traceback = _extract_stack()

InvalidArgumentError (see above for traceback): Incompatible shapes: [55000] vs. [10000]
     [[Node: Equal = Equal[T=DT_INT64, _device="/job:localhost/replica:0/task:0/cpu:0"](ArgMax, ArgMax_1)]]
回溯(最近一次呼叫最后一次):
文件“/Users/joelmcleod/anaconda3/lib/python3.5/site-packages/tensorflow/python/client/session.py”,第1021行,在调用中
返回fn(*args)
文件“/Users/joelmcleod/anaconda3/lib/python3.5/site packages/tensorflow/python/client/session.py”,第1003行,在
状态,运行(元数据)
文件“/Users/joelmcleod/anaconda3/lib/python3.5/contextlib.py”,第66行,在退出时__
下一个(self.gen)
文件“/Users/joelmcleod/anaconda3/lib/python3.5/site packages/tensorflow/python/framework/errors\u impl.py”,第469行,处于引发异常打开状态
pywrap_tensorflow.TF_GetCode(状态))
tensorflow.python.framework.errors\u impl.InvalidArgumentError:不兼容的形状:[55000]与[10000]
[[Node:Equal=Equal[T=DT_INT64,_device=“/job:localhost/replica:0/task:0/cpu:0”](ArgMax,ArgMax_1)]]
在处理上述异常期间,发生了另一个异常:
回溯(最近一次呼叫最后一次):
文件“deep_nn1.py”,第71行,在
a、 c=测试运行([精度、交叉熵],输入数据=测试数据)
文件“/Users/joelmcleod/anaconda3/lib/python3.5/site packages/tensorflow/python/client/session.py”,第766行,正在运行
运行_元数据_ptr)
文件“/Users/joelmcleod/anaconda3/lib/python3.5/site packages/tensorflow/python/client/session.py”,第964行,正在运行
提要(dict字符串、选项、运行元数据)
文件“/Users/joelmcleod/anaconda3/lib/python3.5/site packages/tensorflow/python/client/session.py”,第1014行,在运行中
目标\u列表、选项、运行\u元数据)
文件“/Users/joelmcleod/anaconda3/lib/python3.5/site-packages/tensorflow/python/client/session.py”,第1034行,在
提升类型(e)(节点定义、操作、消息)
tensorflow.python.framework.errors\u impl.InvalidArgumentError:不兼容的形状:[55000]与[10000]
[[Node:Equal=Equal[T=DT_INT64,_device=“/job:localhost/replica:0/task:0/cpu:0”](ArgMax,ArgMax_1)]]
由op“Equal”引起,定义为:
文件“deep_nn1.py”,第47行,在
是否正确=tf.equal(tf.argmax(Y,1),tf.argmax(Y,1))#一个热解码
文件“/Users/joelmcleod/anaconda3/lib/python3.5/site packages/tensorflow/python/ops/gen_math_ops.py”,第728行,等号
结果=_op_def_lib.apply_op(“相等”,x=x,y=y,name=name)
文件“/Users/joelmcleod/anaconda3/lib/python3.5/site packages/tensorflow/python/framework/op_def_library.py”,第759行,在apply_op
op_def=op_def)
文件“/Users/joelmcleod/anaconda3/lib/python3.5/site packages/tensorflow/python/framework/ops.py”,第2240行,在create_op中
初始值=自身值。\默认值\初始值,初始值=初始值)
文件“/Users/joelmcleod/anaconda3/lib/python3.5/site packages/tensorflow/python/framework/ops.py”,第1128行,在__
self.\u traceback=\u extract\u stack()
InvalidArgumentError(回溯见上文):不兼容的形状:[55000]与[10000]
[[Node:Equal=Equal[T=DT_INT64,_device=“/job:localhost/replica:0/task:0/cpu:0”](ArgMax,ArgMax_1)]]

您在此行中输入的是培训数据(行数:55000),而不是测试数据(行数:10000):

test_data = {X: mnist.train.images, Y_: mnist.test.labels}
只需使用以下工具进行修复:

test_data = {X: mnist.test.images, Y_: mnist.test.labels}

非常高兴,奥利弗