tensorFlow2.0中的索引和切片


介绍如何对一个tensor的部分数据进行一个读取,也就是tensor的索引和切片。

一、索引与切片

tensorflow2.0笔记5:tensorFlow2.0中的索引和切片!

1.1、最基本的索引方式

tensorflow2.0笔记5:tensorFlow2.0中的索引和切片!

注意:这种索引方式比较通用,大家都能接受,但这种索引方式比较单一,需要写多个中括号,看起开程序可读性比较差。只能取一个具体的元素,不支持那种隔断取,倒着取多样取得方式。这样对数据读取存在限制。numpy对这种方式进行了一个很好的拓展。下面展示!

1.2、Numpy的索引方式

tensorflow2.0笔记5:tensorFlow2.0中的索引和切片!

注意:使用numpy方式,程序的可读性强,程序中也可以少很多中括号。

1.3、切片(单冒号),start:end

tensorflow2.0笔记5:tensorFlow2.0中的索引和切片!

注意:切片希望读取维度的一部分,比如有4找图片,希望读取前2张图片。切片返回的总是一个标量。比如:这里对于传统的 a[ -1 ] 这样返回的是一个9;对于切片a[-1:]这样返回的是一个向量[ 9 ]。

tensorflow2.0笔记5:tensorFlow2.0中的索引和切片!

1.4、切片(双冒号),start: end: step 隔着采样。

  • 之前的start:end实际相当于start: end:1 默认step为1了。

tensorflow2.0笔记5:tensorFlow2.0中的索引和切片!

1.4.1、双冒号另一个神奇的功能: tensor倒序

tensorflow2.0笔记5:tensorFlow2.0中的索引和切片!

1.5、切片(省略号) …

tensorflow2.0笔记5:tensorFlow2.0中的索引和切片!

1.6、Selective Indexing

tensorflow2.0笔记5:tensorFlow2.0中的索引和切片!

1.6.1、tf.gather

tensorflow2.0笔记5:tensorFlow2.0中的索引和切片!
tensorflow2.0笔记5:tensorFlow2.0中的索引和切片!

注意:以上可以实现想怎么采样就怎么采样,没必要按着规则来了。

1.6.2、tf.gatherd_nd

tensorflow2.0笔记5:tensorFlow2.0中的索引和切片!
tensorflow2.0笔记5:tensorFlow2.0中的索引和切片!

相关文章: