Trackio documentation
Migrar a Trackio
Migrar a Trackio
Es fácil migrar a Trackio desde otras bibliotecas de seguimiento de experimentos con cambios mínimos en el código. Esta guía te muestra cómo migrar desde herramientas populares de seguimiento de experimentos.
Weights & Biases ( wandb )
Migrar de Weights & Biases a Trackio es extremadamente fácil porque Trackio utiliza exactamente la misma sintaxis de API que wandb. En la mayoría de los casos, ¡solo necesitas cambiar la declaración de importación!
Migración simple
La migración más básica solo requiere cambiar su importación:
- import wandb
+ import trackio as wandb
wandb.init(project="my-project")
wandb.log({"loss": 0.5, "accuracy": 0.8})
wandb.finish()Ejemplo completo
Aquí tienes un ejemplo más completo que muestra cómo el resto de tu código permanece exactamente igual.
- 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()Funciones avanzadas
Trackio permite registrar Tables, Images, Audio, objetos 3D, etc. - misma API que wandb:
- 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)
Migrar desde Neptune requiere algunos cambios adicionales, ya que Neptune tiene una estructura de API diferente, pero la migración sigue siendo sencilla.
Migración de registros básicos
- 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()Migración completa del bucle de entrenamiento
- 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()Puntos clave de la migración
- Inicialización: Reemplaza
neptune.init_run()contrackio.init() - Registro: Use
trackio.log()con diccionarios en lugar de asignaciones individuales de métricas - Limpieza: Reemplaza
run.stop()contrackio.finish()
Ventajas de la migración
- API más simple: registro mediante un diccionario plano frente al acceso a atributos anidados
- Desarrollo local: Trabaja sin conexión de forma predeterminada
- Alojamiento gratuito: Despliega paneles en Hugging Face Spaces sin costo
- Interfaz familiar: Si has usado
wandbantes, en particular, la API no ha cambiado