先给出一个样例看看
import tensorflow as tf 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) with tf.Session() as sess: 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 函数的样例 import tensorflow as tf 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__': with tf.Session() as sess: 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结果: [[1 0 0] [0 1 0] [0 1 0] [0 0 1] [0 0 1] [1 0 0] [1 0 0] [0 1 0] [0 0 1] [0 0 1] [1 0 0] [0 0 1]] 以上的结果.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.]]
以上这篇Tensorflow tf.dynamic_partition矩阵拆分示例(Python3) 就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
暂无评论...
更新日志
2024年11月25日
2024年11月25日
- 凤飞飞《我们的主题曲》飞跃制作[正版原抓WAV+CUE]
- 刘嘉亮《亮情歌2》[WAV+CUE][1G]
- 红馆40·谭咏麟《歌者恋歌浓情30年演唱会》3CD[低速原抓WAV+CUE][1.8G]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[320K/MP3][193.25MB]
- 【轻音乐】曼托凡尼乐团《精选辑》2CD.1998[FLAC+CUE整轨]
- 邝美云《心中有爱》1989年香港DMIJP版1MTO东芝首版[WAV+CUE]
- 群星《情叹-发烧女声DSD》天籁女声发烧碟[WAV+CUE]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[FLAC/分轨][748.03MB]
- 理想混蛋《Origin Sessions》[320K/MP3][37.47MB]
- 公馆青少年《我其实一点都不酷》[320K/MP3][78.78MB]
- 群星《情叹-发烧男声DSD》最值得珍藏的完美男声[WAV+CUE]
- 群星《国韵飘香·贵妃醉酒HQCD黑胶王》2CD[WAV]
- 卫兰《DAUGHTER》【低速原抓WAV+CUE】
- 公馆青少年《我其实一点都不酷》[FLAC/分轨][398.22MB]
- ZWEI《迟暮的花 (Explicit)》[320K/MP3][57.16MB]