各位同学好,今天和大家分享一下TensorFlow2.0中的一些操作。内容有:
(1)排序 tf.sort()、tf.argsort()、top_k();(2)填充 tf.pad();(3)复制 tf.tile();(4)限幅 tf.clip_by_value()、tf.maximum()、tf.nn.relu()、tf.clip_by_norm();(5)根据坐标选择 tf.where()
那我们开始吧。
1. 张量排序
1.1 tf.sort() 和 tf.argsort()
按升序或降序对张量进行排序,返回排序后的结果:
tf.sort(tensor, direction)
direction 指降序还是升序,默认升序排序。降序:direction='DESCENDING' ;升序:direction='ASCENDING'
按升序或降序对张量进行排序,返回索引:排序后的当前位置在原始位置中的索引:
tf.argsort(tensor, direction)
参数设置和tf.sort()相同
# 生成一维tensor,打乱顺序
a = tf.random.shuffle(tf.constant([7,8,9,10,11]))
# 排序,返回值为降序排序的结果
tf.sort(a,direction='DESCENDING')
# 返回降序排序后的索引
tf.argsort(a,direction='DESCENDING')
首先我们定义一个tensor为 [8, 7, 10, 9, 11],通过降序排序,返回结果为 [11,10,9,8,7],得到降序排序的索引为 [4,2,3,0,1]。返回结果11在原数据中的索引为4,返回结果10在原数据中索引位置为2,返回结果9在原数据中索引位置为3。