tf.stack(
values, axis=0, name=‘stack’
)
-
value:一个tensor的list axis:
-
stack的维度
-
output:一个tensor,rank(output)=rank(value)+1
如果value中的tensor形状为(A,B,C)
- axis=0,output的形状为(N,A,B,C)
- axis=1,output的形状为(A,N,B,C)
和np.stack()的操作是一样的
tf.concat(
values, axis, name=‘concat’
)
- value:一个tensor的list
- axis: - stack的维度
- output:一个tensor,rank(output)=rank(value)
如果value中的tensor形状为(A,B,C)
-
axis=0,output的形状为(N*A,B,C)
-
axis=1,output的形状为(A,N*B,C)
import tensorflow as tf
a = tf.constant([[1, 2], [3, 4], [5, 6]])
b = tf.constant([[7, 8], [9, 10], [11, 12]])
sess = tf.Session()
_1 = tf.stack([a, b], axis=1)
_2 = tf.concat([a, b], axis=1)
print(sess.run(_1))
print(sess.run(_2))
tf.unstack(
value, num=None, axis=0, name=‘unstack’
)
- value:一个tensor
- axis:unstack的维度
- output:一个tensor 列表
如果value的形状是(A,B,C,D)
- axis=0,output是一个有A个元素的列表,每个元素是一个形状为(B,C,D)的tensor
- axis=1,output是一个有B个元素的列表,每个元素是一个形状为(A,C,D)的tensor