Tensorflow进阶(二)

摘要:本文主要介绍另外一些稍微有点难度的功能函数。

1、高级操作

1.1 tf.gather

tf.gather 可以实现根据索引号收集数据的目的。

1.2 tf.gather_nd

tf.gather_nd函数可以获取某一个或者某几个点的数据。

1.3 tf.boolean_mask

利用函数tf.boolean_mask可以达到使用掩码来获取数据的目的。

1.4 tf.where

通过 tf.where(cond, a, b)操作可以根据cond 条件的真假从a 或b 中读取数据,条件判定规则如下:

其中 i 为张量的索引,返回张量大小与a,b 张量一致,当对应位置中𝑐𝑜𝑛𝑑𝑖为True,𝑜𝑖位置从𝑎𝑖中复制数据;当对应位置中𝑐𝑜𝑛𝑑𝑖为False,𝑜𝑖位置从𝑏𝑖中复制数据。考虑从2 个全1、全0 的3x3 大小的张量a,b 中提取数据,其中cond 为True 的位置从a 中对应位置提取,cond 为False 的位置从b 对应位置提取:

1.5 scatter_nd

通过 tf.scatter_nd(indices, updates, shape)可以高效地刷新张量的部分数据,但是只能在全0 张量的白板上面刷新,因此可能需要结合其他操作来实现现有张量的数据刷新功能。如下图所示,演示了一维张量白板的刷新运算,白板的形状表示为shape 参数,需要刷新的数据索引为indices,新数据为updates,其中每个需要刷新的数据对应在白板中的位置,根据indices 给出的索引位置将updates 中新的数据依次写入白板中,并返回更新后的白板张量。

1.6 meshgrid

通过 tf.meshgrid 可以方便地生成二维网格采样点坐标,方便可视化等应用场合。

现在我们要绘制出下列函数的图像:

posted @ 2019-12-16 20:40  AmingGlaxy  阅读(337)  评论(0编辑  收藏  举报