tensorflow——tf.one_hot以及tf.sparse_to_dense函式
阿新 • • 發佈:2019-01-29
1、tf.one_hot函式
import numpy as np
import tensorflow as tf
SIZE=6
CLASS=10
label1=np.random.randint(0,10,size=SIZE)
b = tf.one_hot(label1,CLASS,1,0)
with tf.Session() as sess:
sess.run(tf.global_variables_initializer())
sess.run(b)
print(sess.run(b))
輸出結果:
產生的隨機數:[7, 2, 9, 8, 4, 2]
[[ 0. 0. 0. 0. 0. 0. 0. 1. 0. 0.]
[ 0. 0. 1. 0. 0. 0. 0. 0. 0. 0.]
[ 0. 0. 0. 0. 0. 0. 0. 0. 0. 1.]
[ 0. 0. 0. 0. 0. 0. 0. 0. 1. 0.]
[ 0. 0. 1. 0. 0. 0. 0. 0. 0. 0.]
[ 0. 0. 0. 0. 1. 0. 0. 0. 0. 0.]]
2、tf.sparse_to_dense函式
import tensorflow as tf
import numpy as np
SIZE=6
CLASS=10
label=np.random .randint(0,10,size=SIZE)
label=np.reshape(label,[SIZE,1])
index = np.reshape(np.arange(SIZE), [SIZE, 1])
#use a matrix
concated = tf.concat([index, label], 1)
onehot_labels = tf.sparse_to_dense(concated, [SIZE, CLASS], 1.0, 0.0)
#use a vector
concated2=tf.constant([1,3,4])
onehot_labels2 = tf.sparse _to_dense(concated2, [ CLASS], 1.0, 0.0)
#use a scalar
concated3=tf.constant(5)
onehot_labels3 = tf.sparse_to_dense(concated3, [ CLASS], 1.0, 0.0)
with tf.Session() as sess:
sess.run(tf.global_variables_initializer())
result1=sess.run(onehot_labels)
result2 = sess.run(onehot_labels2)
result3 = sess.run(onehot_labels3)
print ("This is result1:")
print (result1)
print ("This is result2:")
print (result2)
print ("This is result3:")
print (result3)
輸出結果:
產生的隨機數:[7, 2, 9, 8, 4, 2]
This is result1:
[[ 0. 0. 0. 0. 0. 0. 0. 1. 0. 0.]
[ 0. 0. 1. 0. 0. 0. 0. 0. 0. 0.]
[ 0. 0. 0. 0. 0. 0. 0. 0. 0. 1.]
[ 0. 0. 0. 0. 0. 0. 0. 0. 1. 0.]
[ 0. 0. 1. 0. 0. 0. 0. 0. 0. 0.]
[ 0. 0. 0. 0. 1. 0. 0. 0. 0. 0.]]
This is result2:
[ 0. 1. 0. 1. 1. 0. 0. 0. 0. 0.]
This is result3:
[ 0. 0. 0. 0. 0. 1. 0. 0. 0. 0.]