tf.slice()的简单理解

tf.slice()的简单理解

tf.slice(input,begin,size)
其中input是原始数据,begin是从哪里(起点)开始,size是裁剪后想得到的结果的shape也就是每维度的元素个数。

t = tf.constant([[[1, 2, 3], [4, 5, 6]],
                 [[11, 12, 13], [14, 15, 16]],
                 [[21, 22, 23], [24, 25, 26]]])
tf.slice(t, [1, 0, 0], [1, 1, 3])  
#结果:[[[11 12 13]]]

如何理解?

begin: [1,0,0],表示从t[1,0,0]这个元素开始,t[1,0,0] = 11,所以是从11开始取值。

size: [1,1,3] 表示最终取完值后,当为形状[1,1,3]也就是说,第一维需要取一个元素,第二维也取一个元素,最后第三维取3个元素的。如何取?

关于维度以及元素的理解可以参考:
Numpy,Tensor维度的理解方式

步骤:

第一维有三个元素:
  [[1, 2, 3], [4, 5, 6]],
  [[11, 12, 13], [14, 15, 16]],
  [[21, 22, 23], [24, 25, 26]]])
  从里面只取一个元素,因为是从11开始的,即第二个元素开始,那么就是:
  [[11, 12, 13], [14, 15, 16]]

然后,这第二维有2个元素:
  [11, 12, 13], [14, 15, 16]
  第二维只取一个元素,那么就是:[11, 12, 13]

然后第三维有3个元素:
  11, 12, 13
  第三维需要取三个元素,那么就是全取了,得到:
  11, 12, 13

所以最后的结果补上维度(也就是中括号)为:[[[11 12 13]]]

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值