Tensorflow Shape必须是等级1,但是等级2

时间:2017-06-23 00:12:52

标签: python tensorflow

当我声明我的变量时:

x = tf.Variable([len(_ELEMENT_LIST), 4], dtype=tf.float32)

我收到以下错误:

E0622 20:04:25.241938   21886 app.py:544] Top-level exception: Shape must be rank 1 but is rank 2 for 'input_layer/concat' (op: 'ConcatV2') with input shapes: [5], [5,1], [5,1], [].
E0622 20:04:25.252672   21886 app.py:545] Traceback (most recent call last):

当我这样做的时候:

x = tf.get_variable("x", [len(_ELEMENT_LIST), 4])

它有效

我正在尝试使用concat来计算张量。

tf.concat([
        x, features["y"],
        features["z"]
    ], 1)

1 个答案:

答案 0 :(得分:2)

x = tf.Variable([len(_ELEMENT_LIST), 4], dtype=tf.float32)

tf.Variable的第一个参数是变量的初始值,因此在上部语句x中是一个值为[len(_ELEMENT_LIST), 4]的变量,它的形状等级是1。

x = tf.get_variable("x", [len(_ELEMENT_LIST), 4])

tf.get_variable的第二个参数是变量的形状,因此变量X的形状等级为2.