Tensorflow tf.dynamic_partition矩阵拆分示例(Python3)
先给出一个样例看看
importtensorflowastf raw=tf.constant([1,2,3,4,5,6,6,5,4,3,2,1]) ''' 拆成[1,2][3,4][5,6][6,5][4,3][2,1] ''' result_1=tf.dynamic_partition(tf.reshape(raw,[6,2]),[0,1,2,3,4,5],6) ''' 拆成[1,2,3,4,5,6][6,5,4,3,2,1] ''' result_2=tf.dynamic_partition(tf.reshape(raw,[2,6]),[0,1],2) ''' 拆成[1][2][3][4][5][6][6][5][4][3][2][1] ''' result_3=tf.dynamic_partition(tf.reshape(raw,[12,1]),[0,1,2,3,4,5,6,7,8,9,10,11],12) withtf.Session()assess: print(sess.run(result_1)) print(sess.run(result_2)) print(sess.run(result_3))
结果
[array([[1,2]]),array([[3,4]]),array([[5,6]]),array([[6,5]]),array([[4,3]]),array([[2,1]])] [array([[1,2,3,4,5,6]]),array([[6,5,4,3,2,1]])] [array([[1]]),array([[2]]),array([[3]]),array([[4]]),array([[5]]),array([[6]]),array([[6]]),array([[5]]),array([[4]]),array([[3]]),array([[2]]),array([[1]])]
再给出一个样例
Py3代码:
#one-hot函数的样例 importtensorflowastf label=tf.placeholder(tf.int32,[None]) #直接把输入的序列进行One-Hot的结果 one_hot=tf.one_hot(label,3,1,0) #进行转置 one_hot_new=tf.transpose(one_hot,perm=[1,0]) one_hot_new=tf.cast(one_hot_new,tf.float32) #one_hot_new[2]=one_hot_new[2]*1.5 #按照每一维的大小进行拆分 one_hot_new_1=tf.dynamic_partition(one_hot_new,[0,1,1],2)[0] one_hot_new_2=tf.dynamic_partition(one_hot_new,[1,0,1],2)[0] one_hot_new_3=tf.dynamic_partition(one_hot_new,[1,1,0],2)[0] #按照每一维大小进行拆分 one_hot_1=tf.dynamic_partition(one_hot_new,[0,1,2],3)[0] one_hot_2=tf.dynamic_partition(one_hot_new,[0,1,2],3)[1] one_hot_3=tf.dynamic_partition(one_hot_new,[0,1,2],3)[2] #one_hot_new_3=tf.dynamic_partition(one_hot_new,[0,0,1],2)[2] #拼接以上两维得到原来的结果 one_hot_new=tf.concat([one_hot_new_1,one_hot_new_2],axis=0) if__name__=='__main__': withtf.Session()assess: sess.run(tf.global_variables_initializer()) one_hot_out,one_hot_new_out,one_hot_new_1_out,one_hot_new_2_out,one_hot_new_3_out,one_hot_1_out,one_hot_2_out,one_hot_3_out=sess.run([one_hot,one_hot_new,one_hot_new_1,one_hot_new_2,one_hot_new_3,one_hot_1,one_hot_2,one_hot_3],feed_dict={label:[0,1,1,2,2,0,0,1,2,2,0,2]}) print("原始的One-hot结果:") print(one_hot_out,end='\n\n') print("以上的结果.T:") print("方法一拆分:") print(one_hot_new_out,end='\n\n') print("拆分(1)维:") print(one_hot_new_1_out,end='\n\n') print("拆分(2)维:") print(one_hot_new_2_out,end='\n\n') print("拆分(3)维:") print(one_hot_new_3_out,end='\n\n') print("方法二拆分:") print("拆分(1)维:") print(one_hot_1_out,end='\n\n') print("拆分(2)维:") print(one_hot_2_out,end='\n\n') print("拆分(3)维:") print(one_hot_3_out,end='\n\n')
控制台输出:
原始的One-hot结果: [[100] [010] [010] [001] [001] [100] [100] [010] [001] [001] [100] [001]] 以上的结果.T: 方法一拆分: [[1.0.0.0.0.1.1.0.0.0.1.0.] [0.1.1.0.0.0.0.1.0.0.0.0.]] 拆分(1)维: [[1.0.0.0.0.1.1.0.0.0.1.0.]] 拆分(2)维: [[0.1.1.0.0.0.0.1.0.0.0.0.]] 拆分(3)维: [[0.0.0.1.1.0.0.0.1.1.0.1.]] 方法二拆分: 拆分(1)维: [[1.0.0.0.0.1.1.0.0.0.1.0.]] 拆分(2)维: [[0.1.1.0.0.0.0.1.0.0.0.0.]] 拆分(3)维: [[0.0.0.1.1.0.0.0.1.1.0.1.]]
以上这篇Tensorflowtf.dynamic_partition矩阵拆分示例(Python3)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。