用人话讲解tf.split

API原型(TensorFlow 1.8.0):

tf.split(value, num_or_size_splits, axis=0, num=None, name=‘split’)

这个函数是用来切割张量的,返回的是list。
输入切割的张量和参数,返回切割的结果。
value传入的就是需要切割的张量。
这个函数有两种切割的方式:

以三个维度的张量为例,比如说一个20 * 30 * 40的张量my_tensor,就如同一个长20厘米宽30厘米高40厘米的蛋糕,每立方厘米都是一个分量。

有两种切割方式:

  1. 如果num_or_size_splits传入的是一个整数,这个整数代表这个张量最后会被切成几个小张量。此时,传入axis的数值就代表切割哪个维度(从0开始计数)。调用tf.split(my_tensor, 2,0)返回两个10 * 30 * 40的小张量。
  2. 如果num_or_size_splits传入的是一个向量,那么向量有几个分量就分成几份,切割的维度还是由axis决定。比如调用tf.split(my_tensor, [10, 5, 25], 2),则返回三个张量分别大小为 20 * 30 * 10、20 * 30 * 5、20 * 30 * 25。很显然,传入的这个向量各个分量加和必须等于axis所指示原张量维度的大小 (10 + 5 + 25 = 40)。
  • axis=-1代表最后一个维度,例如
    一个(2,2,3)的tensor,经过tf.split(x0, 3, axis=-1)后会分成3个(2,2,1)的list
    在这里插入图片描述
    在这里插入图片描述

tf.transpose转置

f.transpose(input, [dimension_1, dimenaion_2,…,dimension_n]):
这个函数主要适用于交换输入张量的不同维度用的,

如果输入张量是二维,就相当是转置。

如果张量是三维,就是用[dimension_1,…,dimension_n]来表示,如[0,1,2]。这个列表里的每个数对应相应的维度。如果是[2,1,0],就把输入张量的第三维度和第一维度交换。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值