1. 程式人生 > >TensorFlow獲取Tensor維度

TensorFlow獲取Tensor維度

Welcome To My Blog

獲取Tensor維度

比如一個Tensor為a = tf.constant([[1,2],[3,4]],name='a'),有三種方式可以獲取a的維度
1. a.shape
2. a.get_shape()
3. tf.shape(a)
前兩種返回型別是TensorShape,代表靜態shape,a.shape.as_list()返回list型別的shape
第三種返回型別是Tensor,代表動態shape

動態shape與靜態shape

當需要reshape Tensor時,就能體現出差異了

import tensorflow as
tf b = tf.placeholder(tf.float32,[None,10,32]) b_static = b.shape.as_list() b_dynamic = tf.unstack(tf.shape(b)) dim = [s[1] if s[0] if None else s[0] for s in zip(b_static,b_dynamic)] tf.reshape(b,[dim[0],dim[1]*dim[2]]) #此時b的維度變成[None,320] #如果直接用靜態shape對b進行reshape會報錯