モデルを追跡する
W&B Python SDK を使用して、モデル、モデルの依存関係、およびそのモデルに関連するその他の情報を追跡します。
less than a minute
モデル、モデルの依存関係、およびそのモデルに関連するその他の情報を W&B Python SDK を使用して追跡します。
内部的には、W&B は モデルアーティファクト のリネージを作成し、W&B アプリ UI で表示したり、W&B Python SDK を使用してプログラム的に確認することができます。詳細は モデルリネージマップの作成 を参照してください。
モデルをログする方法
run.log_model
API を使用してモデルをログします。モデルファイルが保存されているパスを path
パラメータに提供してください。このパスはローカルファイル、ディレクトリー、または s3://bucket/path
のような外部バケットへのリファレンス URI のいずれかにすることができます。
オプションでモデルアーティファクトの名前を name
パラメータに指定できます。name
が指定されていない場合、W&B は入力パスのベース名を実行 ID を前に付けたものとして使用します。
以下のコードスニペットをコピーして貼り付けてください。<>
で囲まれた値をあなた自身のものに置き換えてください。
import wandb
# W&B run を初期化
run = wandb.init(project="<project>", entity="<entity>")
# モデルをログする
run.log_model(path="<path-to-model>", name="<name>")
例: Keras モデルを W&B にログする
以下のコード例は、畳み込みニューラルネットワーク (CNN) モデルを W&B にログする方法を示します。
import os
import wandb
from tensorflow import keras
from tensorflow.keras import layers
config = {"optimizer": "adam", "loss": "categorical_crossentropy"}
# W&B run を初期化
run = wandb.init(entity="charlie", project="mnist-project", config=config)
# トレーニングアルゴリズム
loss = run.config["loss"]
optimizer = run.config["optimizer"]
metrics = ["accuracy"]
num_classes = 10
input_shape = (28, 28, 1)
model = keras.Sequential(
[
layers.Input(shape=input_shape),
layers.Conv2D(32, kernel_size=(3, 3), activation="relu"),
layers.MaxPooling2D(pool_size=(2, 2)),
layers.Conv2D(64, kernel_size=(3, 3), activation="relu"),
layers.MaxPooling2D(pool_size=(2, 2)),
layers.Flatten(),
layers.Dropout(0.5),
layers.Dense(num_classes, activation="softmax"),
]
)
model.compile(loss=loss, optimizer=optimizer, metrics=metrics)
# モデルを保存
model_filename = "model.h5"
local_filepath = "./"
full_path = os.path.join(local_filepath, model_filename)
model.save(filepath=full_path)
# モデルをログする
run.log_model(path=full_path, name="MNIST")
# W&B に対して明示的に run の終了を通知します。
run.finish()
フィードバック
このページは役に立ちましたか?
Glad to hear it! If you have more to say, please let us know.
Sorry to hear that. Please tell us how we can improve.