深度学习实验跟踪工具
Project description
SeeTrain
SeeTrain 是一个深度学习实验跟踪和框架集成工具,旨在提供统一的接口来适配各种深度学习框架,实现无缝的实验管理和多媒体数据记录。
注意: 本包在 PyPI 上的名称为
seetrain-ml,安装时请使用pip install seetrain-ml。
✨ 特性
- 📊 统一实验跟踪: 提供一致的 API 来记录指标、图像、音频、文本等多媒体数据。
- 🔄 无缝集成: 支持与 TensorBoard 和 Weights & Biases (Wandb) 的同步,无需大幅修改现有代码。
- �️ 多媒体支持: 轻松记录和可视化图像、视频、音频和文本。
- �🚀 简单易用: 简洁的接口设计,快速上手。
📦 安装
使用 pip 安装:
pip install seetrain-ml
验证安装:
import seetrain
print(f"SeeTrain version: {seetrain.__version__}")
🚀 快速开始
以下是一个完整的示例,展示了如何初始化实验并记录各种类型的数据:
import time
import random
import seetrain
# 1. 初始化实验
seetrain.init(
config={
"learning_rate": 0.02,
"architecture": "resnet56",
"dataset": "cifar10",
"epochs": 10
}
)
# 2. 模拟训练过程
epochs = 10
for epoch in range(1, epochs + 1):
# 模拟指标计算
acc = 1 - 2 ** -epoch - random.random() / epoch
loss = 2 ** -epoch + random.random() / epoch
# 记录训练指标和多媒体数据
seetrain.log({
"train/acc": acc,
"train/loss": loss,
"Preview/text": seetrain.Text(f"Epoch {epoch} finished"),
# 示例:记录图像 (需替换为真实路径或数据)
# "Preview/image": seetrain.Image("path/to/image.jpg")
}, epoch=epoch)
print(f"Epoch {epoch}: loss={loss:.4f}, acc={acc:.4f}")
time.sleep(0.5)
# 3. 结束实验
seetrain.finish()
📖 使用指南
1. 初始化实验
在训练脚本开始时调用 seetrain.init():
seetrain.init(
config={ # 实验配置参数 (可选)
"learning_rate": 0.001,
"batch_size": 32,
"model": "ResNet50"
}
)
2. 记录数据
使用 seetrain.log() 记录各种类型的数据。
记录指标 (Metrics)
支持两种调用方式:
方式一:字典方式 (推荐) 通过字典一次性记录多个指标:
seetrain.log({"loss": 0.5, "accuracy": 0.95}, step=100)
方式二:键值对方式 记录单个指标:
seetrain.log("train/loss", 0.5, step=100)
💡 提示: 使用
/可以对指标进行分组展示,例如train/loss。
记录多媒体 (Multimedia)
SeeTrain 支持记录多种媒体类型,建议使用分组(如 Preview/image)来组织数据:
# 记录图像
seetrain.log({
"Preview/image": seetrain.Image("path/to/image.jpg")
}, step=1)
# 记录视频
seetrain.log({
"Preview/video": seetrain.Video("path/to/video.mp4")
}, step=1)
# 记录音频
seetrain.log({
"Preview/audio": seetrain.Audio("path/to/audio.wav", sample_rate=44100, caption="测试音频")
}, step=1)
# 记录文本
seetrain.log({
"Preview/text": seetrain.Text("这是一个测试文本")
}, step=1)
3. 第三方集成
SeeTrain 支持自动同步数据到 TensorBoard 和 Wandb,仅需极少的代码改动。
Weights & Biases (Wandb) 同步
import seetrain
import wandb
# 开启 Wandb 同步
seetrain.sync_wandb()
# 正常初始化 Wandb
# wandb.init(project="my-project")
TensorBoard 同步
支持 tensorboardX 和 torch.utils.tensorboard。
import seetrain
# 方式 A: 如果使用 tensorboardX
try:
from tensorboardX import SummaryWriter
seetrain.sync_tensorboardX()
except ImportError:
pass
# 方式 B: 如果使用 PyTorch 的 tensorboard
try:
from torch.utils.tensorboard import SummaryWriter
seetrain.sync_tensorboard_torch()
except ImportError:
pass
# 正常使用 SummaryWriter
# writer = SummaryWriter('runs/experiment')
📋 API 说明
seetrain.log 参数详解
- data: (Union[Dict, str]) 指标数据字典 或 指标名称。
- value: (Any, optional) 指标值,仅在
data是字符串(指标名称)时使用。 - step: (int, optional) 训练步数/全局步数。
- epoch: (int, optional) 训练轮数。
- print_to_console: (bool, optional) 是否将日志打印到控制台,默认为 True。
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file seetrain_ml-0.1.26.tar.gz.
File metadata
- Download URL: seetrain_ml-0.1.26.tar.gz
- Upload date:
- Size: 33.3 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.9.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a310e23325ca507d3e99c5914c4bc1fe1760d2234671a7d775f9e032b6752be5
|
|
| MD5 |
1eff97fe7cda4f88260375d604128ae8
|
|
| BLAKE2b-256 |
6a9f0f5247115957759ae9323c1a9466552a7c2d756c76e4495838d4e0ef4a8c
|
File details
Details for the file seetrain_ml-0.1.26-py3-none-any.whl.
File metadata
- Download URL: seetrain_ml-0.1.26-py3-none-any.whl
- Upload date:
- Size: 121.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.9.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fa358d18eb3d06553c6189a6c84daa0ed84b201bcafce3a3977b6b3308e34566
|
|
| MD5 |
f6649a9def6359fa7d7e8c93c87a91fc
|
|
| BLAKE2b-256 |
310bc378db44f4c0731a67a62c91d51693c3276c6445198cde377d59b0d6f36e
|