TensorBoard에서 TensorFlow가 제공 한 히스토그램을 어떻게 해석합니까?


23

나는 최근에 텐서 흐름을 실행하고 배우고 있었고 해석하는 방법을 모르는 몇 가지 히스토그램을 얻었습니다. 보통 막대의 높이를 주파수 (또는 상대 주파수 / 카운트)로 생각합니다. 그러나 일반적인 히스토그램에서와 같이 막대가 없으며 사물이 음영 처리된다는 사실이 혼란스러워합니다. 한 번에 많은 선 / 높이가있는 것 같습니까?

다음 그래프를 해석하는 방법을 아는 사람이 있습니까 (그리고 일반적으로 tensorflow에서 히스토그램을 읽는 데 도움이되는 좋은 조언을 제공합니다).

여기에 이미지 설명을 입력하십시오

아마도 토론해야 할 다른 것들은 원래 변수가 벡터 또는 행렬 또는 텐서라면 실제로 각 좌표에 대한 히스토그램과 같이 텐서 흐름은 무엇입니까? 또한 사람들에게 충분한 정보를 제공하기 위해이 정보를 얻는 방법을 참조하는 것은 현재 문서에서 유용한 정보를 찾기가 어려웠 기 때문에 좋을 것입니다. 어쩌면 일부 자습서 예제 등? 어쩌면 그것들을 조작하는 것에 대한 조언도 좋을 것입니다.


참고로 여기 에이 코드를 추출한 내용이 있습니다.

(X_train, Y_train, X_cv, Y_cv, X_test, Y_test) = data_lib.get_data_from_file(file_name='./f_1d_cos_no_noise_data.npz')
(N_train,D) = X_train.shape
D1 = 24
(N_test,D_out) = Y_test.shape
W1 = tf.Variable( tf.truncated_normal([D,D1], mean=0.0, stddev=std), name='W1') # (D x D1)
S1 = tf.Variable( tf.constant(100.0, shape=[]), name='S1') # (1 x 1)
C1 = tf.Variable( tf.truncated_normal([D1,1], mean=0.0, stddev=0.1), name='C1' ) # (D1 x 1)
W1_hist = tf.histogram_summary("W1", W1)
S1_scalar_summary = tf.scalar_summary("S1", S1)
C1_hist = tf.histogram_summary("C1", C1)

2
이 줄거리가 무엇이든 히스토그램이 아닙니다! 정의에 따라 히스토그램은 영역을 기준으로 확률 을 나타 냅니다.
whuber

1
요점은 자신을 오도하는 "히스토그램"이라고 말하면 독자를 오도 할 위험이 있으며, 검색에 잘못된 키워드를 사용하기 때문에 진행중인 일을 조사 할 기회를 잃게된다는 것입니다. 당신이해야한다고 먼저 할 일은 무엇인지 찾기 위해 설명서를 참조입니다 이 음모를 호출합니다.
whuber

1
@ whuber 나는 그들을 히스토그램이라고 부르지 않고, 그들은 스스로 히스토그램이라고 부르고 있습니다! 이것은 그 정보를 수집하는 데 사용한 명령 중 하나입니다 W1_hist = tf.histogram_summary("W1", W1). 그것은 히스토그램이라고 말합니다. 왜 그들이 왜 다른 것을 할 때 히스토그램이라고 부를 지 모르겠습니다.
Pinocchio 2016 년

1
소프트웨어 개발자가 자신이 원하는 기능의 이름을 지정할 수 있다고 가정합니다. 그러나 함수의 이름에 관계없이 이들은 단순히 어떤 형태의 히스토그램도 아닙니다. 문서 가 인식 할 수있는 기존 이름을 사용하거나 최소한이 플롯의 구성 방법을 설명하기를 바랍니다.
whuber

2
@Pinocchio, 인터넷 검색 2 분 동안 github.com/tensorflow/tensorflow/blob/master/tensorflow/… 로 이동하여 "히스토그램"에 대해 아래로 스크롤 할 수 있습니다. 이 문서를 이미 보셨습니까?
amoeba는

답변:


21

현재 "히스토그램"이라는 이름은 잘못된 이름입니다. README 에서 그 증거를 찾을 수 있습니다 . 히스토그램 인터페이스의 의미는 그들이 말한대로 언젠가 변경 될 수 있습니다. 그러나 이것이 현재 의미하는 바입니다.

귀하의 질문에있는 그래프는 다른 TensorFlow 실행을 혼합합니다. 대신, 한 번의 실행 만 표시하는 다음 그래프를보십시오.

여기에 이미지 설명을 입력하십시오

먼저 말하고 싶은 것은 곡선 자체가 백분위 수를 나타냅니다 . 나는 여기 에서 그림을 빌릴 것이다 :

여기에 이미지 설명을 입력하십시오

이는 93 %로 표시된 곡선이 93 번째 백분위 수임을 의미합니다. 이는 관측치의 93 %가 1.00k 시간 단계에서 ~ 0.130 미만의 값임을 의미합니다. 따라서 그래프는 3 가지 정보를 제공하며, 관찰의 백분율은 신경망 훈련의 계산 단계 (적어도이 경우 단계의 의미)마다 일부 생각 곡선에 따라 특정 값을 나타냅니다. 이것은 당신에게 당신의 네트워크 가치 분포의 느낌을 제공합니다.

훈련 중 값의 범위를 이해하기위한 최소값과 최대 값도 있습니다.

따라서 y 축은 원하는 값을 나타내며 곡선은 단계의 백분위 수와 x 축을 나타냅니다. 당신이 가지고 있다면 :

(엑스,에프나는(엑스)=와이)

나는나는

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.