Recentemente, eu estava correndo e aprendendo o fluxo tensor e obtive alguns histogramas que não sabia como interpretar. Normalmente, penso na altura das barras como a frequência (ou frequência / contagem relativa). No entanto, o fato de não haver barras como em um histograma usual e o fato de as coisas estarem sombreadas me confundem. também parece haver muitas linhas / alturas ao mesmo tempo?
Alguém sabe como interpretar os seguintes gráficos (e talvez forneça bons conselhos que possam ajudar em geral a ler histogramas no fluxo tensor):
talvez outras coisas interessantes de discutir sejam: se as variáveis originais eram vetores, matrizes ou tensores, o que o fluxo de tensores mostra de fato, como um histograma para cada coordenada? Além disso, talvez fazer referência a como obter essas informações para tornar as pessoas auto-suficientes seria bom porque tive algumas dificuldades em encontrar coisas úteis nos documentos no momento. Talvez alguns tutoriais exemplo etc? Talvez alguns conselhos sobre como manipulá-los também fossem bons.
Como referência, aqui um extrato do código que forneceu isso:
(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)
W1_hist = tf.histogram_summary("W1", W1)
. Diz histograma, como devo chamá-lo? Não sei por que eles chamariam de histograma quando é outra coisa.Respostas:
Atualmente, o nome "histograma" é um nome impróprio. Você pode encontrar evidências disso no README . O significado da interface do histograma pode mudar algum dia, como eles disseram lá. No entanto, é isso que significa atualmente.
Os gráficos em sua pergunta combinam diferentes execuções do TensorFlow. Em vez disso, observe os seguintes gráficos que exibem apenas uma execução:
Primeiro, o que eu gostaria de dizer é que as próprias curvas representam percentis . Vou emprestar a foto daqui :
o que significa que a curva rotulada com 93% é o 93º percentil, o que significa que 93% das observações estavam abaixo do valor ~ 0,130 na etapa 1,00k. Portanto, o gráfico fornece três informações, a porcentagem de observações abaixo de um determinado valor, de acordo com algumas curvas de pensamento, a cada etapa do cálculo do treinamento da rede neural (pelo menos neste caso, é o que as etapas significam). Isso lhe dá uma ideia da distribuição de valores da sua rede.
Existem também os valores mínimo e máximo para ter uma noção do intervalo de valores durante o treinamento.
Portanto, o eixo y indica o valor que você está interessado e a curva indica o percentil e o eixo x na etapa. Então, se você tem:
fonte