python - 我自己的 tensorflow MNIST 管道数据给出了 ValueError : input elements number isn't divisible by 65536

标签 python ubuntu tensorflow mnist

我将自己的数据用于 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 的大小会怎样?

关于python - 我自己的 tensorflow MNIST 管道数据给出了 ValueError : input elements number isn't divisible by 65536,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39559953/

相关文章:

python - 从字符串列表写入 csv 时,如何在第一列上添加时间戳

python: `__init__` 的装饰器如何工作?

带有http的git克隆在gitlab中不起作用

python - Pathlib 在 Ubuntu 上找不到文件

python - Keras LSTM 第二层(但不是第一层)的输入形状错误

Python CSV 模块 - 引号丢失

ubuntu - 符号作为变量的值是 void : debian-emacs-flavor when running ispell on tex file

python - 如何防止keras自定义损失函数中的负面预测

tensorflow - Tensorflow 中的矢量移位(滚动)

python - Pandas + python : merge 2 dataframes cell by cell