2016-12-26 3 views
0

私は次のようにエンコードに見えるしたいデータ:tensorflow 0.8 1ホットエンコーディング

print (train['labels']) 

[0 0 0 ...、42 42 42]

は0~42から行く43個のクラスがあります

今、私は、次のようにそれを使用しようとしたので、バージョン0.8でtensorflowは1つのホットエンコーディングのための新機能を持っていることを読む:

trainhot=tf.one_hot(train['labels'], 43, on_value=1, off_value=0) 

誰かが私を微調整することができます:( "0 strided_slice"、形状=(43、)、DTYPE = INT32)唯一の問題は、テンソル、私は、出力は私が

print (trainhot[1]) 

必要なものはないと思うということです正しい方向をお願いします。

答えて

0

出力が正しいと思われます。 trainhot [1]は、1D形状(43、)の2番目(0ベースのインデックス)トレーニングサンプルのラベルです。下記のコードで遊んで、tf.one_hotをよく理解してください。

onehot = tf.one_hot([0, 0, 41, 42], 43, on_value=1, off_value=0)     
    with tf.Session() as sess:               
    onehot_v = sess.run(onehot)             
    print("v: ", onehot_v)                
    print("v shape: ", onehot_v.shape)             
    print("v[1] shape: ", onehot[1]) 

output: 
v: [[1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 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 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
    0 0 0 0 0 0] 
[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 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 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
    0 0 0 0 0 1]] 
v shape: (4, 43) 
v[1] shape: Tensor("strided_slice:0", shape=(43,), dtype=int32) 
関連する問題