簡體   English   中英

TensorFlow: Value Error Shape and Rank Do Not Match: ValueError: Shape (?, 128, 128, 2) must have rank 2

[英]TensorFlow: Value Error Shape and Rank Do Not Match: ValueError: Shape (?, 128, 128, 2) must have rank 2

使用 deconv 神經網絡運行預測時出現此異常。 等級和形狀似乎相同,所以我不確定問題是什么。

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

Shape (?, 128, 128, 2)是一個 4 階張量,但 softmax 算子顯然期望一個 2 階張量。

在我看來,您使用的是舊版本的 Tensorflow。 在 0.10 版本中, tf.nn.softmax要求其輸入為 2 級: https : tf.nn.softmax

在當前版本的 Tensorflow 中, tf.nn.softmax接受任何等級的輸入: https : tf.nn.softmax

嘗試使用較新版本的 Tensorflow。

希望有幫助!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM