Path: blob/master/site/ja/tensorboard/get_started.ipynb
25115 views
Copyright 2019 The TensorFlow Authors.
TensorBoard を使う
機械学習では、何かを改善するには、それを測定できる必要があります。TensorBoard は機械学習ワークフローの際に必要な測定値と視覚化を提供するツールです。損失や精度などの実験メトリックのトラッキング、モデルグラフの視覚化、低次元空間への埋め込みの投影など、さまざまなことを行えます。
このクイックスタートでは、TensorBoard を素早く使用し始める方法を示します。このウェブサイトの他のガイドでは、ここには含まれていない具体的な機能について、より詳しく説明します。
MNIST データセットを例として使用しながら、データを正規化し、画像を 10 個のクラスに分類する単純な Keras モデルを作成する関数を記述します。
Keras Model.fit() で TensorBoard を使用する
Keras の Model.fit() を使用すると、tf.keras.callbacks.TensorBoard
コールバックによってログが作成され、保存されたこと保証できます。さらに、histogram_freq=1
(デフォルトでは無効)でエポックごとにヒストグラム計算を行えます。
トレーニング実行を簡単に選択できるように、ログをタイムスタンプ付きのサブディレクトリに配置しましょう。
コマンドラインから、またはノートブックエクスペリエンス内で TensorBoard を起動します。2 つのインターフェースはほぼ同じです。ノートブックでは、%tensorboard
ラインマジックを使用しますが、コマンドラインでは同じコマンドを「%」をつけずに実行します。
以下に、この例で作成される可視化の簡単な説明と、それが表示されるダッシュボード(トップナビゲーションバーのタブ)を示します。
Scalars には、エポックごとの損失とメトリックの変化が示されます。これを使用して、トレーニング速度、学習率、およびその他のスカラー値をトラッキングすることもできます。Scalars は Time Series または Scalars ダッシュボードに表示されます。
Graphs では、モデルを可視化できます。このケースではレイヤーの Keras グラフが示されており、正しく構築されていることが確認しやすくなります。Graphs は Graphs ダッシュボードに表示されます。
Histograms と Distributions には、経時的なテンソルの分布が示されます。これは、重みとバイアスを可視化子、期待されるとおりに変化しているかを確認する上で役立ちます。Histograms は Time Series または Histograms ダッシュボードに表示されます。Distributions は Distributions ダッシュボードに表示されます。
ほかの種類のデータをログ記録すると、追加の TensorBoard ダッシュボードが自動的に有効化されます。たとえば、Keras TensorBoard コールバックの場合は、画像と埋め込みもログ記録することができます。TensorBoard で利用できるほかのダッシュボードを確認するには、右上の方にある「inactive」ドロップダウンをクリックしてください。
ほかのメソッドで TensorBoard を使用する
tf.GradientTape()
などのメソッドでトレーニングする場合に必要な情報をログ記録するには、tf.summary
を使用します。
上記と同じデータセットを使用しますが、tf.data.Dataset
に変換して、バッチ機能を利用しましょう。
トレーニングコードは高度なクイックスタートチュートリアルの内容に従いますが、メトリックを TensorBoard にログ記録する方法が示されています。損失とオプティマイザを選択してください。
トレーニング中の値を蓄積するために使用し、任意の時点でログ記録できるステートフルメトリックを作成します。
トレーニングとテストの関数を定義します。
logs ディレクトリに要約をディスクに書き込むためのサマリーライターをセットアップします。
トレーニングを開始します。サマリーライターがディスクに要約を書き込めるように、tf.summary.scalar()
を使用して、トレーニング/テスト中のメトリック(損失と精度)をログします。ログするメトリックとその頻度は、ユーザーが制御します。ほかの tf.summary
関数は、ほかの種類のデータのログに使用されます。
TensorBoard をもう一度開き、新しいログディレクトリにポイントします。また、TensorBoard を起動してトレーニングの経過を監視することもできます。
これで完了です!Keras コールバックと、ほかのカスタムシナリオで使用できる tf.summary
を使って TensorBoardを使用する方法を確認しました。
TensorBoard.dev: ML 実験結果のホストと共有
TensorBoard.dev は無料の一般公開サービスで、TensorBoard ログをアップロードし、学術論文、ブログ投稿、ソーシャルメディアなどでの共有に使用するパーマリンクを取得することができます。このサービスにより、再現性と共同作業をさらに改善することができます。
TensorBoard.dev を使用するには、次のコマンドを実行してください。
この呼び出しでは、パーセント記号(%
)のプレフィクスを使って Colab マジックを呼び出すのではなく、感嘆符(!
)をプレフィクスとしてシェルを呼び出していることに注意してください。コマンドラインからこのコマンドを呼び出す際は、いずれのプレフィクスも必要ありません。
こちらで例をご覧ください。
TensorBoard.dev の詳しい使用方法については、https://tensorboard.dev/#get-started をご覧ください。