2016-11-20 2 views
1

original Tensorflow tutorial 다음 코드를 포함 tf.expand_dims :Tensorflow는

batch_size = tf.size(labels) 
labels = tf.expand_dims(labels, 1) 
indices = tf.expand_dims(tf.range(0, batch_size, 1), 1) 
concated = tf.concat(1, [indices, labels]) 
onehot_labels = tf.sparse_to_dense(concated, tf.pack([batch_size, NUM_CLASSES]), 1.0, 0.0) 

번째 줄은 labels 텐서에 치수를 추가한다. 그러나 labels은 피드 사전을 통해 입력되었으므로 이미 모양이 [batch_size, NUM_CLASSES]이어야합니다. 그렇다면 expand_dims은 왜 여기에 사용됩니까?

답변

2

그 튜토리얼은 꽤 오래되었습니다. 당신은 0.6 버전을 참조하고있는 반면 (11-20-2016 시간) 0.11에 있습니다. 따라서 당시 v0.6과 다른 많은 기능이있었습니다.

어쨌든 귀하의 질문에 대답하기 : mnist에서

라벨은 단지 숫자 0-9로 인코딩했다. 그러나 손실 함수는 레이블이 하나의 고온 벡터로 인코딩 될 것으로 예상했습니다.

레이블이 아직 [batch_size, NUM_CLASSES]이 아니며 단지 [batch_size]이었습니다.

이것은 비슷한 numpy 기능을 통해 수행되었을 수 있습니다. 또한 그들은 이미 당신이 진술 한 모양을 가지고있는 하나의 뜨거운 벡터로서 tensorflow에서 mnist 데이터 세트로부터 라벨을 얻는 함수를 제공했습니다.

관련 문제