Try in Colab

WandbEvalCallback を紹介します。これは抽象的なコールバックで、モデル予測の可視化とデータセットの可視化に役立つコールバックを構築するために継承されます。
セットアップとインストール
まず、最新バージョンの Weights and Biases をインストールしましょう。その後、この Colab インスタンスを認証して W&B を利用できるようにします。wandb.login() を実行した後に表示されるリンクがサインアップ/ログインページに誘導します。無料アカウントへのサインアップは、数クリックで簡単です。
ハイパーパラメーター
適切なコンフィグシステムの使用は、再現可能な機械学習のための推奨ベストプラクティスです。W&B を使用して、各実験のハイパーパラメーターを管理することができます。この Colab では、シンプルな Python のdict をコンフィグシステムとして使用します。
データセット
この Colab では、TensorFlow データセットカタログから CIFAR100 データセットを使用します。TensorFlow/Keras を使用して、シンプルな画像分類 パイプラインを構築することを目指します。モデル
モデルのコンパイル
WandbEvalCallback
WandbEvalCallback は主にモデル予測の可視化、そして二次的にはデータセットの可視化のための Keras コールバックを構築するための抽象基底クラスです。
これはデータセットやタスクに依存しない抽象コールバックです。これを使用するには、この基底コールバッククラスから継承し、add_ground_truth と add_model_prediction メソッドを実装します。
WandbEvalCallback は以下のような便利なメソッドを提供するユーティリティクラスです:
- データと予測の
wandb.Tableインスタンスを作成、 wandb.Artifactとしてデータと予測テーブルをログ、on_train_beginにデータテーブルをログ、on_epoch_endに予測テーブルをログ。
WandbClfEvalCallback を以下に実装しました。この例では:
- W&B にバリデーションデータ (
data_table) をログ、 - 推論を行い、各エポックの終わりに W&B に予測 (
pred_table) をログします。
メモリ使用量が削減される仕組み
on_train_begin メソッドが呼び出される時に data_table を W&B にログします。一度 W&B のアーティファクトとしてアップロードされると、このテーブルへの参照を取得できます。それはクラス変数 data_table_ref を使用してアクセスできます。data_table_ref は 2D リストで、self.data_table_ref[idx][n] のようにインデックス付けできます。ここで idx は行番号、n は列番号です。以下の例で使用方法を見てみましょう。