Trackio documentation
Trackioへの移行
はじめに
ハウツーガイド
トラッキングハイパーパラメータスイープトレース成果物レジストリダッシュボードを起動するServer をセルフホストするダッシュボードのデプロイと埋め込みプロジェクトの管理ランの管理のためのPython APICLIコマンドログブックストレージスキーマと直接クエリAPI と MCP サーバーアラートML Agents環境変数
統合
API
Trackioへの移行
他の実験トラッキングライブラリからTrackioへの移行は、コードの修正を最小限に抑えることで簡単に実現できます。このガイドでは、人気のある実験トラッキングツールからの移行方法について説明します。
Weights & Biases ( wandb )
Weights & Biases から Trackio への移行は、Trackio が wandb とまったく同じ API 構文を使用しているため、非常に簡単です。ほとんどの場合、インポート文を変更するだけで済みます!
シンプルな移行
最も基本的な移行には、インポートの変更だけで済みます:
- import wandb
+ import trackio as wandb
wandb.init(project="my-project")
wandb.log({"loss": 0.5, "accuracy": 0.8})
wandb.finish()完全な例
残りのコードがまったく同じままで済むことを示す、より完全な例を以下に示します!
- import wandb
+ import trackio as wandb
import numpy as np
wandb.init(
project="image-classification",
name="experiment-1",
config={
"learning_rate": 0.01,
"batch_size": 32,
"epochs": 10
}
)
for epoch in range(10):
loss = np.random.random()
accuracy = np.random.random()
wandb.log({
"epoch": epoch,
"loss": loss,
"accuracy": accuracy,
"learning_rate": wandb.config.learning_rate
})
wandb.finish()高度な機能
Trackioは、Tables、Images、Audio、3Dオブジェクトなどのログ記録をサポートしています。wandbと同じAPIです:
- import wandb
+ import trackio as wandb
import numpy as np
wandb.init(project="data-analysis")
image_array = np.random.randint(0, 255, (100, 100, 3), dtype=np.uint8)
wandb.log({
"sample_image": wandb.Image(image_array, caption="Generated sample"),
"model_diagram": wandb.Image("architecture.png")
})
columns = ["epoch", "train_loss", "val_loss", "accuracy"]
data = [
[1, 0.8, 0.6, 0.75],
[2, 0.6, 0.5, 0.82],
[3, 0.4, 0.45, 0.89]
]
table = wandb.Table(data=data, columns=columns)
wandb.log({"training_results": table})
wandb.finish()Neptune (neptune)
Neptuneからの移行は、Neptuneが異なるAPI構造を持っているため、いくつかの追加の変更が必要ですが、移行自体は依然として簡単です。
基本的なログの移行
- import neptune
+ import trackio
- run = neptune.init_run(
- project="my-workspace/my-project",
- api_token="your-token"
- )
+ trackio.init(project="my-project")
- run["parameters"] = {"learning_rate": 0.01, "batch_size": 32}
- run["metrics/loss"].log(0.5)
- run["metrics/accuracy"].log(0.8)
+ trackio.config.update({"learning_rate": 0.01, "batch_size": 32})
+ trackio.log({"loss": 0.5, "accuracy": 0.8})
- run.stop()
+ trackio.finish()完全なトレーニングループの移行
- import neptune
+ import trackio
import numpy as np
- run = neptune.init_run(
- project="my-workspace/classification-project",
- name="experiment-1",
- tags=["pytorch", "cnn"]
- )
+ trackio.init(
+ project="classification-project",
+ name="experiment-1",
+ tags=["pytorch", "cnn"]
+ )
config = {"learning_rate": 0.01, "epochs": 10, "batch_size": 32}
- run["parameters"] = config
+ trackio.config.update(config)
for epoch in range(config["epochs"]):
# Simulate training
train_loss = np.random.random()
val_accuracy = np.random.random()
# Neptune logging
- run["metrics/train/loss"].log(train_loss)
- run["metrics/val/accuracy"].log(val_accuracy)
- run["metrics/epoch"].log(epoch)
# Trackio logging
+ trackio.log({
+ "train/loss": train_loss,
+ "val/accuracy": val_accuracy,
+ "epoch": epoch
+ })
- run["model/weights"].upload("model.pth")
+ trackio.save("model.pth")
- run.stop()
+ trackio.finish()主な移行ポイント
- 初期化:
neptune.init_run()をtrackio.init()に置き換えてください - ログ出力: 個別のメトリック割り当ての代わりに、辞書を使用して
trackio.log()を使用します - クリーンアップ:
run.stop()をtrackio.finish()に置き換えます
移行のメリット
- よりシンプルな API: ネストされた属性アクセスではなく、フラットな辞書によるログ出力
- ローカル開発: デフォルトでオフラインで作業
- 無料ホスティング:Hugging Face Spacesにダッシュボードを無料でデプロイ
- 慣れ親しんだインターフェース: 特に以前
wandbを使用していた場合、APIは変更されていません