はじめに
すでに TensorBoard を使用している場合は、Weights & Biases と統合できます。両方のライブラリをインポートして、スクリプト内で Weights & Biases と TensorFlow の API を使用できるようにします。カスタムメトリクスをログする
このセクションでは、TensorBoard が取得しないメトリクスをログする方法を説明します。これにより、標準の TensorBoard サマリーとともに追加の値をトラッキングできます。 TensorBoard がログしないカスタムメトリクスを追加でログする必要がある場合は、コード内でrun.log() を呼び出せます。たとえば、run.log({"custom": 0.8}) のようにします。
Weights & Biases は TensorBoard との同期時に run.log() の step 引数を無効にします。異なる step 数を設定するには、次のように step メトリクスとともにメトリクスをログします。
TensorFlow Estimator のフック
このセクションでは、TensorFlow Estimator 用の Weights & Biases フックについて説明します。このフックを使用すると、Estimator のトレーニング中に Weights & Biases が取得する内容を細かく制御できます。 ログする内容をより細かく制御したい場合のために、Weights & Biases は TensorFlow Estimator 用のフックも提供しています。このフックは、グラフ内のすべてのtf.summary 値をログします。
手動でログする
estimator を使用していない場合や、特定のサマリーを明示的にログしたい場合、このセクションではtf.summary の値を Weights & Biases に直接送信する方法を説明します。
TensorFlow でメトリクスをログする方法の 1 つは、TensorFlow ロガーで tf.summary をログすることです。
tf.GradientTape の使用を推奨します。詳細は、TensorFlow のカスタムトレーニングのウォークスルーを参照してください。カスタム TensorFlow トレーニングループに Weights & Biases を組み込んでメトリクスをログするには、次のスニペットに従ってください。
Weights & Biases と TensorBoard の違い
TensorBoard と併用するか、TensorBoard の代わりに Weights & Biases を導入するかを検討している場合は、このセクションで主な違いを確認してください。 Weights & Biases は、TensorBoard ユーザーがよく直面していた制約を解消するために開発されました。Weights & Biases には、次のような違いがあります。- モデルの再現: Weights & Biases は、実験や探索に加え、後からモデルを再現することもサポートします。Weights & Biases はメトリクス、ハイパーパラメーター、コードのバージョンを取得し、バージョン管理のステータスやモデル チェックポイントも保存できるため、project を再現可能な状態に保てます。
- 自動的な整理: 共同作業者から project を引き継ぐとき、しばらく時間を置いてから作業を再開するとき、古い project を見直すときでも、Weights & Biases ならこれまでに試したモデルを確認できるため、不要な実験を繰り返さずに済みます。
- 柔軟なインテグレーション: オープンソースの Python パッケージをインストールし、コードに数行追加するだけで、Weights & Biases を project に組み込めます。各 run では、ログされたメトリクスと記録が生成されます。
- 永続的で一元化されたダッシュボード: ローカルマシン、研究室の共有クラスター、クラウドの Spot インスタンスのどこでモデルをトレーニングしても、Weights & Biases は結果を同じ一元化されたダッシュボードに送信します。複数のマシンから TensorBoard のファイルをコピーして整理する必要はありません。
- Tables: 複数のモデルの結果を検索、フィルター、並べ替え、グループ化できます。モデルのバージョンを確認し、タスクごとに最も性能の高いモデルを見つけられます。
- コラボレーションのためのツール: Weights & Biases を使用して機械学習の project を整理できます。Weights & Biases へのリンクを共有したり、プライベートチームを使用して共有 project に結果を送信したりできます。Reports では、インタラクティブな可視化と Markdown による説明を使ってコラボレーションできます。作業ログの記録、指導者への検出結果の共有、研究室やチームでの検出結果の発表などに活用できます。
サンプル
これらのインテグレーションのパターンを完全な project に適用した例については、以下のサンプルをご覧ください。- TensorFlow Estimators を使用した MNIST のサンプル。
- TensorFlow を直接使用した Fashion MNIST のサンプル。
- MNIST サンプルの Weights & Biases ダッシュボード。
- TensorFlow 2 でのトレーニングループのカスタマイズ: 記事とダッシュボード。