张量流中张量的_keras_shape和_shape有什么区别?

时间:2019-06-29 10:30:57

标签: tensorflow shapes

在张量流中,我发现张量具有两个变量:_shape_keras_shape。下图是一个示例:

enter image description here

K.int_shape()将返回_keras_shape

_shape_keras_shape有什么区别?

2 个答案:

答案 0 :(得分:0)

上面的图片中已经提到了区别。请参阅输出类型。一个是tuple,而另一个输出是TensorShape类型。 例如:

import tensorflow as tf
a = tf.placeholder(tf.float32, [None, 128])
a.shape
# output: TensorShape([Dimension(None), Dimension(128)])

from keras import backend as K
print(K.int_shape(a))
# output: (None, 128)

tf.keras.backend.int_shape将张量或变量的形状作为tuple的int或None条目返回,而_shape的类型为TensorShape

进一步了解here中的tf.keras.backend.int_shapehere中的TensorShape

答案 1 :(得分:0)

keras层将计算张量的形状,但不会计算张量流。这样,_keras_shape是由自定义图层计算出的形状。