【问题标题】:TensorFlow: Value Error Shape and Rank Do Not Match: ValueError: Shape (?, 128, 128, 2) must have rank 2TensorFlow:值错误形状和排名不匹配:ValueError:形状(?,128,128,2)必须有排名2
【发布时间】:2017-01-31 23:51:01
【问题描述】:

我在使用反卷积神经网络运行预测时遇到此异常。等级和形状似乎相同,所以我不确定是什么问题。

File "/home/Workspace/image-recognition/app/model/per_pixel_deconv.py", line 141, in Model
    softmax = tf.nn.softmax(output, name=None)

File "/home/anaconda2/envs/image-recognition/lib/python2.7/site-packages/tensorflow/python/ops/gen_nn_ops.py", line 1396, in softmax
    result = _op_def_lib.apply_op("Softmax", logits=logits, name=name)

File "/home/anaconda2/envs/image-recognition/lib/python2.7/site-packages/tensorflow/python/framework/op_def_library.py", line 703, in apply_op
    op_def=op_def)

File "/home/anaconda2/envs/image-recognition/lib/python2.7/site-packages/tensorflow/python/framework/ops.py", line 2319, in create_op
    set_shapes_for_outputs(ret)

File "/home/anaconda2/envs/image-recognition/lib/python2.7/site-packages/tensorflow/python/framework/ops.py", line 1711, in set_shapes_for_outputs
    shapes = shape_func(op)

File "/home/anaconda2/envs/image-recognition/lib/python2.7/site-packages/tensorflow/python/framework/common_shapes.py", line 45, in _ShapeFunction
    return [op.inputs[0].get_shape().with_rank(rank)]

File "/home/anaconda2/envs/image-recognition/lib/python2.7/site-packages/tensorflow/python/framework/tensor_shape.py", line 641, in with_rank
    raise ValueError("Shape %s must have rank %d" % (self, rank))
ValueError: Shape (?, 128, 128, 2) must have rank 2

【问题讨论】:

  • (?, 128, 128, 2) 看起来像等级/维度 1 的数组/元组,不应该看起来像这样-> ((?, 128), (128, 2)) 等级 2?和“?”在 Shape 的第一个条目中看起来不合适。

标签: python machine-learning tensorflow


【解决方案1】:

形状 (?, 128, 128, 2) 是 4 阶张量,但 softmax 运算符显然期望 2 阶张量。

在我看来,您使用的是旧版本的 Tensorflow。在 0.10 版中,tf.nn.softmax 要求其输入为 2 级: https://www.tensorflow.org/versions/r0.10/api_docs/python/nn/classification#softmax

在当前版本的 Tensorflow 中,tf.nn.softmax 接受任何等级的输入: https://www.tensorflow.org/api_docs/python/nn/classification#softmax

尝试使用更新版本的 Tensorflow。

希望有帮助!

【讨论】:

  • 谢谢,这实际上是在我回到 v 0.10 时开始发生的。不幸的是,我的代码在版本 10、11 和 12 之间存在问题。
猜你喜欢
  • 2017-07-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多