【问题标题】:tf.reshape loses shape of the tensortf.reshape 失去张量的形状
【发布时间】:2017-10-26 15:36:58
【问题描述】:

当我重塑张量时,tf.reshape<Tensor>.shape 无法推断出形状。 如果我正确理解了这个问题:https://github.com/tensorflow/tensorflow/issues/3311,它应该已经修复了。

谁能帮我解决我可能遗漏的地方?

import tensorflow as tf

sess = tf.InteractiveSession()

m = 100
n = 300

x = 123
y = 456

a = tf.get_variable(dtype=tf.int32, shape=[m, n, x], name="a")
b = tf.get_variable(dtype=tf.int32, shape=[m, n, y], name="b")

print(a.shape) # => (100, 300, 123)
print(b.shape) # => (100, 300, 456)
print(tf.shape(a)) # => Tensor("Shape_4:0", shape=(3,), dtype=int32)
print(tf.shape(b)) # => Tensor("Shape_5:0", shape=(3,), dtype=int32

c = tf.concat([a, b], axis=-1)

print(c.shape) # => (100, 300, 579)
print(tf.shape(c)) # = >Tensor("Shape:0", shape=(3,), dtype=int32)

s = tf.shape(c)
cc = tf.reshape(c, [s[0]*s[1], -1])

print(cc.shape)  # => (?, ?)
print(tf.shape(cc)) # => Tensor("Shape_3:0", shape=(2,), dtype=int32)

【问题讨论】:

    标签: tensorflow


    【解决方案1】:

    我想你想用:

    s = c.get_shape().as_list()
    

    s = c.shape.as_list()
    

    我自己从来没有真正使用过tf.shape(),但是当我使用上面的时候,我收到了正确的形状(30000, 579)

    【讨论】:

      猜你喜欢
      • 2022-07-04
      • 2019-09-01
      • 2018-12-13
      • 2016-12-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多