TensorBoardでTensorFlowによって与えられたヒストグラムをどのように解釈しますか?


23

私は最近、テンソルフローを実行して学習しており、解釈方法がわからないヒストグラムをいくつか取得しました。通常、バーの高さは頻度(または相対頻度/カウント)と考えます。しかし、通常のヒストグラムのようにバーが存在しないという事実と、陰影が付いているという事実は、私を混乱させます。また、一度に多くの行/高さがありますか?

誰かが次のグラフを解釈する方法を知っていますか(そしておそらくテンソルフローでヒストグラムを読むのに役立つ一般的なアドバイスを提供します):

ここに画像の説明を入力してください

元の変数がベクトルまたは行列またはテンソルである場合、実際にテンソルフローは各座標のヒストグラムのように表示されますか?また、この情報を取得して人々を自立させる方法を参照することは、ドキュメントで有用なものを見つけるのが困難であるため、今は素晴らしいでしょう。たぶん、いくつかのチュートリアルの例など?それらを操作する上でのアドバイスもいいかもしれません。


参考として、これを与えたコードの抜粋を以下に示します。

(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私はそれらをヒストグラムとは呼んでおらず、彼ら自身をヒストグラムと呼んでいます!これは、その情報を収集するために使用したコマンドの1つですW1_hist = tf.histogram_summary("W1", W1)。それはヒストグラムと言います、私はそれを他に何と呼ぶでしょうか?私は彼らがそれを何か他のときにヒストグラムと呼ぶ理由を知りません。
ピノキオ

1
ソフトウェア開発者は、自分の好きな名前を自分の機能に付けることができると思います。ただし、関数の名前に関係なく、これらは単なる形式のヒストグラムではありません。ドキュメントが認識可能な従来の名前を使用すること、または(少なくとも)これらのプロットの作成方法を説明することを期待できます。
whuber

2
@Pinocchio、ために私をもたらしたグーグルの2分github.com/tensorflow/tensorflow/blob/master/tensorflow/...あなたは「ヒストグラム」について読むためにスクロールできる場所。すでにこのドキュメントを見たことがありますか?
アメーバは、モニカの復活を

回答:


21

現在、「ヒストグラム」という名前は誤った呼び名です。その証拠はREADMEにあります。彼らがそこに述べたように、ヒストグラムインターフェイスの意味はいつか変わるかもしれません。ただし、これは現在の意味です。

質問のグラフには、TensorFlowのさまざまな実行が混在しています。代わりに、1つの実行のみを表示する次のグラフをご覧ください。

ここに画像の説明を入力してください

最初に言いたいことは、曲線自体がパーセンタイルを表しているということです。私はここから写真を借ります

ここに画像の説明を入力してください

これは、93%とラベル付けされた曲線が93パーセンタイルであることを意味します。つまり、観測の93%がタイムステップ1.00kで値〜0.130を下回りました。したがって、グラフは3つの情報を提供します。ニューラルネットワークトレーニングの計算のすべてのタイムステップで、何らかの思考曲線に従って、特定の値以下の観測の割合(少なくともこの場合はステップの意味)。これにより、ネットワークの価値の分布を感じることができます。

トレーニング中に値の範囲を把握するための最小値と最大値もあります。

したがって、y軸は関心のある値を示し、曲線はステップでのパーセンタイルとx軸を示します。あなたが持っている場合:

バツfバツ=y

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.