Tensorflow的逆置换操作函数tf.invert_permutation

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/caimouse/article/details/70791183

tf.invert_permutation(x,name=None)

计算序列的逆置换(inverse permutation)。

本操作是计算张量的索引的逆置换。x是一维的整数张量,表示一个以0为开始的索引数组,然后根据这里元素的值来放入整数什,计算公式如下:

y[x[i]] = i for i in [0, 1, ..., len(x) -1]

从0开始,没有重复和负数值。

例如:

# 张量 `x` 是 [3, 4, 0, 2, 1]

invert_permutation(x) ==> [2, 4, 3, 0, 1]

参数:

·        x: 张量,必须是下面类型之一: int32, int64。 1-D。

·        name: 操作的名称,可选。

返回值:

张量,与x类型相同。1-D。

#python 3.5.3/TensorFlow 1.0.1/win 10    
#2017-04-26 蔡军生  http://blog.csdn.net/caimouse    
#
#导入要使用的库
import tensorflow as tf
import numpy as np

#演示API的类
class DemoTF:
    def __init__(self):
        '''构造函数'''
        self.num1 = tf.Variable([1, 2, 0, 3], dtype = tf.int32)
        self.num2 = tf.Variable([1, 3, 0, 2], dtype = tf.int32) 
        self.invert1 = tf.invert_permutation(self.num1)
        self.invert2 = tf.invert_permutation(self.num2)  

    def run_graph(self):       
        init = tf.global_variables_initializer()  # 初始化变量
        with tf.Session() as sess:            
            sess.run(init)
            self.main(sess) #运行主函数
    def main(self, sess):
        '''主函数'''        
        print(sess.run(self.num1))         
        print(sess.run(self.invert1))

        print('num2: \n', sess.run(self.num2))         
        print(sess.run(self.invert2))
                
#主程序入口
if __name__ == "__main__":
    demo = DemoTF()
    demo.run_graph()

结果输出如下:

[1 2 0 3]
[2 0 1 3]
num2: 
 [1 3 0 2]
[2 0 3 1]
>>>


1. TensorFlow API攻略

2. TensorFlow入门基本教程

3. C++标准模板库从入门到精通 

4.跟老菜鸟学C++

5. 跟老菜鸟学python

6. 在VC2015里学会使用tinyxml库

7. 在Windows下SVN的版本管理与实战 

 http://edu.csdn.net/course/detail/2579

8.Visual Studio 2015开发C++程序的基本使用 

http://edu.csdn.net/course/detail/2570

9.在VC2015里使用protobuf协议

10.在VC2015里学会使用MySQL数据库



展开阅读全文

没有更多推荐了,返回首页