My own data to tensorflow MNIST pipeline gives ValueError: input elements number isn't divisible by 65536
My own data to tensorflow MNIST pipeline gives ValueError: input elements number isn't divisible by 65536
我将自己的数据与 tensorflow
MNIST
示例管道一起使用,但得到:
ValueError: input has 16384 elements, which isn't divisible by 65536
我已经成功地练习了示例数据。但是,在引入我自己调整大小为 128x128px
并生成 ubytes idx 文件的图像后,出现以下错误:
Traceback (most recent call last):
File "tensorimage.py", line 132, in
train_step = tf.train.AdamOptimizer(1e-4).minimize(cross_entropy)
File "/home/ubuntu/tensorflow/python3/lib/python3.4/site-packages/tensorflow/python/training/optimizer.py", line 196, in minimize
grad_loss=grad_loss)
File "/home/ubuntu/tensorflow/python3/lib/python3.4/site-packages/tensorflow/python/training/optimizer.py", line 253, in compute_gradients
colocate_gradients_with_ops=colocate_gradients_with_ops)
File "/home/ubuntu/tensorflow/python3/lib/python3.4/site-packages/tensorflow/python/ops/gradients.py", line 478, in gradients
in_grads = _AsList(grad_fn(op, *out_grads))
File "/home/ubuntu/tensorflow/python3/lib/python3.4/site-packages/tensorflow/python/ops/array_grad.py", line 298, in _ReshapeGrad
return [array_ops.reshape(grad, array_ops.shape(op.inputs[0])), None]
File "/home/ubuntu/tensorflow/python3/lib/python3.4/site-packages/tensorflow/python/ops/gen_array_ops.py", line 1758, in reshape
name=name)
File "/home/ubuntu/tensorflow/python3/lib/python3.4/site-packages/tensorflow/python/framework/op_def_library.py", line 703, in apply_op
op_def=op_def)
File "/home/ubuntu/tensorflow/python3/lib/python3.4/site-packages/tensorflow/python/framework/ops.py", line 2319, in create_op
set_shapes_for_outputs(ret)
File "/home/ubuntu/tensorflow/python3/lib/python3.4/site-packages/tensorflow/python/framework/ops.py", line 1711, in set_shapes_for_outputs
shapes = shape_func(op)
File "/home/ubuntu/tensorflow/python3/lib/python3.4/site-packages/tensorflow/python/ops/array_ops.py", line 1867, in _ReshapeShape
(num_elements, known_elements))
ValueError: input has 16384 elements, which isn't divisible by 65536
令我困惑的是,我确实将输入设置为16384个元素(128x128),但是,我不明白65536是从哪里来的。我梳理了所有代码,包括文件 tensorflow/python3/lib/python3.4/site-packages/tensorflow/contrib/learn/python/learn/datasets/mnist.py
但无法找到 65536 号码的来源。
如果不查看更多代码就很难说出到底出了什么问题,但总的来说 TensorFlow 认为 input
的其他维度导致了 65536 个元素的跨度,因此它正在尝试通过将存在的元素数除以已知维度大小来推断缺失的维度,并发现错误:
https://github.com/tensorflow/tensorflow/blob/master/tensorflow/python/ops/array_ops.py#L1702
如果在此错误之前打印 input
的大小会怎样?
我将自己的数据与 tensorflow
MNIST
示例管道一起使用,但得到:
ValueError: input has 16384 elements, which isn't divisible by 65536
我已经成功地练习了示例数据。但是,在引入我自己调整大小为 128x128px
并生成 ubytes idx 文件的图像后,出现以下错误:
Traceback (most recent call last): File "tensorimage.py", line 132, in train_step = tf.train.AdamOptimizer(1e-4).minimize(cross_entropy) File "/home/ubuntu/tensorflow/python3/lib/python3.4/site-packages/tensorflow/python/training/optimizer.py", line 196, in minimize grad_loss=grad_loss) File "/home/ubuntu/tensorflow/python3/lib/python3.4/site-packages/tensorflow/python/training/optimizer.py", line 253, in compute_gradients colocate_gradients_with_ops=colocate_gradients_with_ops) File "/home/ubuntu/tensorflow/python3/lib/python3.4/site-packages/tensorflow/python/ops/gradients.py", line 478, in gradients in_grads = _AsList(grad_fn(op, *out_grads)) File "/home/ubuntu/tensorflow/python3/lib/python3.4/site-packages/tensorflow/python/ops/array_grad.py", line 298, in _ReshapeGrad return [array_ops.reshape(grad, array_ops.shape(op.inputs[0])), None] File "/home/ubuntu/tensorflow/python3/lib/python3.4/site-packages/tensorflow/python/ops/gen_array_ops.py", line 1758, in reshape name=name) File "/home/ubuntu/tensorflow/python3/lib/python3.4/site-packages/tensorflow/python/framework/op_def_library.py", line 703, in apply_op op_def=op_def) File "/home/ubuntu/tensorflow/python3/lib/python3.4/site-packages/tensorflow/python/framework/ops.py", line 2319, in create_op set_shapes_for_outputs(ret) File "/home/ubuntu/tensorflow/python3/lib/python3.4/site-packages/tensorflow/python/framework/ops.py", line 1711, in set_shapes_for_outputs shapes = shape_func(op) File "/home/ubuntu/tensorflow/python3/lib/python3.4/site-packages/tensorflow/python/ops/array_ops.py", line 1867, in _ReshapeShape (num_elements, known_elements)) ValueError: input has 16384 elements, which isn't divisible by 65536
令我困惑的是,我确实将输入设置为16384个元素(128x128),但是,我不明白65536是从哪里来的。我梳理了所有代码,包括文件 tensorflow/python3/lib/python3.4/site-packages/tensorflow/contrib/learn/python/learn/datasets/mnist.py
但无法找到 65536 号码的来源。
如果不查看更多代码就很难说出到底出了什么问题,但总的来说 TensorFlow 认为 input
的其他维度导致了 65536 个元素的跨度,因此它正在尝试通过将存在的元素数除以已知维度大小来推断缺失的维度,并发现错误:
https://github.com/tensorflow/tensorflow/blob/master/tensorflow/python/ops/array_ops.py#L1702
如果在此错误之前打印 input
的大小会怎样?