TF2.0笔记2

Tensor的索引

1.经典索引方式

a=tf.ones([1,4,5,12])
a[0][1][2]

2.Numpy风格的索引方式
不同于经典模式,用逗号隔开可读性更强

a=tf.ones([4,12,23,67])
a[1,2,3].shape

3.Tensor的切片
类似于python的索引方式,含左不含右
主要的运算符就是在索引部分使用 : 运算符
step表示采样间隔

a=tf.range(10)
a[-1:]
a[0:2]
#start:end
#start:step:end
#::step
#有这三种切片方式
a[::-1]#倒叙采样

a=tf.random.normal([2,4,28,28,3])
a[0:,:,:,:]
a[0:...]
#以上两种写法相同,...表示纬度都取

特别地 在::-1这个符号表示逆转tensor

可选择索引

1.tf.gather
按照索引列表进行数据处理
参数:
tensor 表示待采样的tensor
轴axis表示从某个轴进行抽样
indices=[ ]表示按照某种索引进行检索

a=tf.random.normal([4,35,8])
tf.gather(a,axis=0,indices=[2,1,0,3])
#从第一个纬度按照2 1 0 3 的顺序进行采样

2.tf.gather_nd
按照一个索引列表进行采样

tf.gather_nd(a,[[0,0,0],[1,1,1],[2,2,2]])

3.tf.boolean_mask

a=tf.random.normal([4,28,28,3])
tf.boolean_mask(a,mask=[True,True,False],axis=3)

a=tf.ones([2,3,4])
tf.boolean_mask(a,mask=[[True,False,False],[False,True,True]])
#输出的shape是(3,4),因为mask是二维的,所以,这里的mask代表前两个纬度的mask,一共是3个True,所以第一个纬度为3
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值