tf.split

2022-09-04 20:56:36 浏览数 (1)

代码语言:javascript复制
tf.split(
    value,
    num_or_size_splits,
    axis=0,
    num=None,
    name='split'
)

把张量分解成子张量。如果num_or_size_split是一个整数,那么值将沿着维度轴拆分为num_split较小的张量。这要求num_split均匀地分割value.shape[axis]。如果num_or_size_split是一个一维张量(或列表),称之为size_split,值被分割成len(size_split)元素。第i个元素的形状与值的大小相同,除了尺寸为size_split [i]的维度轴。

例如:

代码语言:javascript复制
# 'value' is a tensor with shape [5, 30]
# Split 'value' into 3 tensors with sizes [4, 15, 11] along dimension 1
split0, split1, split2 = tf.split(value, [4, 15, 11], 1)
tf.shape(split0)  # [5, 4]
tf.shape(split1)  # [5, 15]
tf.shape(split2)  # [5, 11]
# Split 'value' into 3 tensors along dimension 1
split0, split1, split2 = tf.split(value, num_or_size_splits=3, axis=1)
tf.shape(split0)  # [5, 10]

参数:

  • value: 要分割的张量。
  • num_or_size_split: 要么是一个整数,表示沿split_dim进行的分割的数量,要么是一个一维整数张量或Python列表,其中包含沿split_dim进行的每个输出张量的大小。如果一个标量,那么它必须均匀地除value.shape[axis];否则,拆分维度上的大小总和必须与值的大小相匹配。
  • axis: 整数或标量int32张量。要分割的维度。必须在[-rank(value), rank(value)]范围内。默认值为0。
  • num: 可选的,用于指定不能从size_split的形状推断输出的数量。
  • name:操作的名称(可选)。

返回值:

  • 如果num_or_size_split是一个标量,则返回num_or_size_split张量对象;如果num_or_size_split是一个一维张量,则返回num_or_size_split。由值分裂得到的张量对象。

异常:

  • ValueError: If num is unspecified and cannot be inferred.

原链接: https://tensorflow.google.cn/versions/r1.14/api_docs/python/tf/split

0 人点赞