tf.raw_ops.Pack

tf.raw_ops.Pack  |  TensorFlow Core v2.8.0Packs a list of N rank-R tensors into one rank-(R+1) tensor.https://tensorflow.google.cn/api_docs/python/tf/raw_ops/Pack输入tensor的shape必须一样,设tensor个数为num,axis取值范围:[-num-1, num]

import tensorflow as tf
import numpy as np


# outshape:  -> (3,1)
inputs = [np.ones((1,)), np.ones((1,))+1, np.zeros((1,))]
axis = 0

# outshape:  -> (1, 3)
inputs = [np.ones((1,)), np.ones((1,))+1, np.zeros((1,))]
axis = 1

# outshape:  -> (3,)
inputs = [0, 1, 2]
axis = -1

# outshape: (2, 4, 3)
inputs = [np.ones((2,4)), np.ones((2,4))+1, np.zeros((2,4))]
axis = 2

node = tf.raw_ops.Pack(
    values = inputs,
    axis = axis,
    name=None
)

with tf.Session() as sess:
    res = sess.run(node)
    print(res)
    print(res.shape)

该OP相当于: Unsqueeze(tensor, axis) + concat(tensors, axis)

猜你喜欢

转载自blog.csdn.net/zmj1582188592/article/details/123687120
tf