# SeeTrain
**SeeTrain** 是一个强大的深度学习实验跟踪和框架集成工具,提供统一的接口来适配各种深度学习框架,实现无缝的实验管理和数据记录。
> **注意**: 本包在 PyPI 上的名称为 `seetrain-ml`,请使用 `pip install seetrain-ml` 进行安装。
## ✨ 特性
- 🔗 **多框架集成** - 支持 PyTorch Lightning、TensorFlow/Keras、Hugging Face、MMEngine 等主流框架
- 📊 **统一实验跟踪** - 提供一致的 API 来记录指标、图像、音频、文本等多媒体数据
- 🎯 **多种适配模式** - Callback、Tracker、VisBackend、Autolog 四种集成模式
- 🚀 **自动日志记录** - 支持 OpenAI、智谱 AI 等 API 的自动拦截和记录
- 📈 **实时监控** - 硬件资源监控、性能指标跟踪
- 🎨 **丰富可视化** - 基于 Rich 库的美观终端输出
## 🚀 快速开始
### 安装
```bash
pip install seetrain-ml
```
### 验证安装
```python
import seetrain
print(f"SeeTrain version: {seetrain.__version__}")
print("SeeTrain 安装成功!")
```
### 基本使用
```python
from seetrain import init, log, log_scalar, log_image, finish
# 初始化实验
experiment = init(
project="my_project",
experiment_name="experiment_1",
description="我的第一个实验"
)
# 记录标量指标
log_scalar('loss', 0.5, step=100)
log_scalar('accuracy', 0.95, step=100)
# 记录图像
import numpy as np
image = np.random.rand(224, 224, 3)
log_image('prediction', image, step=100)
# 记录字典数据
log({
'train/loss': 0.3,
'train/accuracy': 0.98,
'val/loss': 0.4,
'val/accuracy': 0.96
}, step=100)
# 完成实验
finish()
```
### 多媒体数据记录
```python
# 记录音频
import numpy as np
audio_data = np.random.randn(16000) # 1秒的音频
log_audio('speech', audio_data, sample_rate=16000, step=100)
# 记录文本
log_text('prediction', "这是一个预测结果", step=100)
# 记录视频
video_frames = np.random.rand(10, 224, 224, 3) # 10帧视频
log_video('animation', video_frames, fps=30, step=100)
```
### 配置管理
```python
from seetrain import update_config
# 记录超参数
update_config({
'learning_rate': 0.001,
'batch_size': 32,
'model_architecture': 'ResNet50',
'optimizer': 'Adam'
})
```
## 📦 安装选项
### 基础安装
```bash
pip install seetrain-ml
```
Raw data
{
"_id": null,
"home_page": "https://github.com/seetrain/seetrain",
"name": "seetrain-ml",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": "SeeTrain Team <seetrain@example.com>",
"keywords": "deep learning, experiment tracking, pytorch, tensorflow, keras, mlflow, wandb",
"author": "SeeTrain Team",
"author_email": "SeeTrain Team <seetrain@example.com>",
"download_url": "https://files.pythonhosted.org/packages/23/bc/de3be8f781902f4ba051ad37c5ac45831caa3c658d5cd3d5af608dd02f26/seetrain_ml-0.1.6.tar.gz",
"platform": null,
"description": "# SeeTrain\n\n**SeeTrain** \u662f\u4e00\u4e2a\u5f3a\u5927\u7684\u6df1\u5ea6\u5b66\u4e60\u5b9e\u9a8c\u8ddf\u8e2a\u548c\u6846\u67b6\u96c6\u6210\u5de5\u5177\uff0c\u63d0\u4f9b\u7edf\u4e00\u7684\u63a5\u53e3\u6765\u9002\u914d\u5404\u79cd\u6df1\u5ea6\u5b66\u4e60\u6846\u67b6\uff0c\u5b9e\u73b0\u65e0\u7f1d\u7684\u5b9e\u9a8c\u7ba1\u7406\u548c\u6570\u636e\u8bb0\u5f55\u3002\n\n> **\u6ce8\u610f**: \u672c\u5305\u5728 PyPI \u4e0a\u7684\u540d\u79f0\u4e3a `seetrain-ml`\uff0c\u8bf7\u4f7f\u7528 `pip install seetrain-ml` \u8fdb\u884c\u5b89\u88c5\u3002\n\n## \u2728 \u7279\u6027\n\n- \ud83d\udd17 **\u591a\u6846\u67b6\u96c6\u6210** - \u652f\u6301 PyTorch Lightning\u3001TensorFlow/Keras\u3001Hugging Face\u3001MMEngine \u7b49\u4e3b\u6d41\u6846\u67b6\n- \ud83d\udcca **\u7edf\u4e00\u5b9e\u9a8c\u8ddf\u8e2a** - \u63d0\u4f9b\u4e00\u81f4\u7684 API \u6765\u8bb0\u5f55\u6307\u6807\u3001\u56fe\u50cf\u3001\u97f3\u9891\u3001\u6587\u672c\u7b49\u591a\u5a92\u4f53\u6570\u636e\n- \ud83c\udfaf **\u591a\u79cd\u9002\u914d\u6a21\u5f0f** - Callback\u3001Tracker\u3001VisBackend\u3001Autolog \u56db\u79cd\u96c6\u6210\u6a21\u5f0f\n- \ud83d\ude80 **\u81ea\u52a8\u65e5\u5fd7\u8bb0\u5f55** - \u652f\u6301 OpenAI\u3001\u667a\u8c31 AI \u7b49 API \u7684\u81ea\u52a8\u62e6\u622a\u548c\u8bb0\u5f55\n- \ud83d\udcc8 **\u5b9e\u65f6\u76d1\u63a7** - \u786c\u4ef6\u8d44\u6e90\u76d1\u63a7\u3001\u6027\u80fd\u6307\u6807\u8ddf\u8e2a\n- \ud83c\udfa8 **\u4e30\u5bcc\u53ef\u89c6\u5316** - \u57fa\u4e8e Rich \u5e93\u7684\u7f8e\u89c2\u7ec8\u7aef\u8f93\u51fa\n\n## \ud83d\ude80 \u5feb\u901f\u5f00\u59cb\n\n### \u5b89\u88c5\n\n```bash\npip install seetrain-ml\n```\n\n### \u9a8c\u8bc1\u5b89\u88c5\n\n```python\nimport seetrain\nprint(f\"SeeTrain version: {seetrain.__version__}\")\nprint(\"SeeTrain \u5b89\u88c5\u6210\u529f\uff01\")\n```\n\n### \u57fa\u672c\u4f7f\u7528\n\n```python\nfrom seetrain import init, log, log_scalar, log_image, finish\n\n# \u521d\u59cb\u5316\u5b9e\u9a8c\nexperiment = init(\n project=\"my_project\",\n experiment_name=\"experiment_1\",\n description=\"\u6211\u7684\u7b2c\u4e00\u4e2a\u5b9e\u9a8c\"\n)\n\n# \u8bb0\u5f55\u6807\u91cf\u6307\u6807\nlog_scalar('loss', 0.5, step=100)\nlog_scalar('accuracy', 0.95, step=100)\n\n# \u8bb0\u5f55\u56fe\u50cf\nimport numpy as np\nimage = np.random.rand(224, 224, 3)\nlog_image('prediction', image, step=100)\n\n# \u8bb0\u5f55\u5b57\u5178\u6570\u636e\nlog({\n 'train/loss': 0.3,\n 'train/accuracy': 0.98,\n 'val/loss': 0.4,\n 'val/accuracy': 0.96\n}, step=100)\n\n# \u5b8c\u6210\u5b9e\u9a8c\nfinish()\n```\n\n\n### \u591a\u5a92\u4f53\u6570\u636e\u8bb0\u5f55\n\n```python\n# \u8bb0\u5f55\u97f3\u9891\nimport numpy as np\naudio_data = np.random.randn(16000) # 1\u79d2\u7684\u97f3\u9891\nlog_audio('speech', audio_data, sample_rate=16000, step=100)\n\n# \u8bb0\u5f55\u6587\u672c\nlog_text('prediction', \"\u8fd9\u662f\u4e00\u4e2a\u9884\u6d4b\u7ed3\u679c\", step=100)\n\n# \u8bb0\u5f55\u89c6\u9891\nvideo_frames = np.random.rand(10, 224, 224, 3) # 10\u5e27\u89c6\u9891\nlog_video('animation', video_frames, fps=30, step=100)\n```\n\n### \u914d\u7f6e\u7ba1\u7406\n\n```python\nfrom seetrain import update_config\n\n# \u8bb0\u5f55\u8d85\u53c2\u6570\nupdate_config({\n 'learning_rate': 0.001,\n 'batch_size': 32,\n 'model_architecture': 'ResNet50',\n 'optimizer': 'Adam'\n})\n```\n\n## \ud83d\udce6 \u5b89\u88c5\u9009\u9879\n\n### \u57fa\u7840\u5b89\u88c5\n```bash\npip install seetrain-ml\n```\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "\u6df1\u5ea6\u5b66\u4e60\u5b9e\u9a8c\u8ddf\u8e2a\u548c\u6846\u67b6\u96c6\u6210\u5de5\u5177",
"version": "0.1.6",
"project_urls": {
"Bug Tracker": "https://github.com/seetrain/seetrain/issues",
"Documentation": "https://seetrain.readthedocs.io/",
"Homepage": "https://github.com/seetrain/seetrain",
"Repository": "https://github.com/seetrain/seetrain"
},
"split_keywords": [
"deep learning",
" experiment tracking",
" pytorch",
" tensorflow",
" keras",
" mlflow",
" wandb"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "7a6e0b5e26ae09fd5fa1995d12d7894e076f466faa4c727040dc9df5941e23bf",
"md5": "30fb84fdf3782770a0b593a4f080a9e5",
"sha256": "39043681007f088738e20401f27750ede0458da0f64d1cb3900bdbe8f323902c"
},
"downloads": -1,
"filename": "seetrain_ml-0.1.6-py3-none-any.whl",
"has_sig": false,
"md5_digest": "30fb84fdf3782770a0b593a4f080a9e5",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8",
"size": 113451,
"upload_time": "2025-10-09T07:37:46",
"upload_time_iso_8601": "2025-10-09T07:37:46.251240Z",
"url": "https://files.pythonhosted.org/packages/7a/6e/0b5e26ae09fd5fa1995d12d7894e076f466faa4c727040dc9df5941e23bf/seetrain_ml-0.1.6-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "23bcde3be8f781902f4ba051ad37c5ac45831caa3c658d5cd3d5af608dd02f26",
"md5": "dac6a7b9f19d404ad5a02c14d228f1c0",
"sha256": "a862045dc9aeb559b759b90a38989f884c7d033144cec3c9996e04418dfe74bd"
},
"downloads": -1,
"filename": "seetrain_ml-0.1.6.tar.gz",
"has_sig": false,
"md5_digest": "dac6a7b9f19d404ad5a02c14d228f1c0",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 7955152,
"upload_time": "2025-10-09T07:37:52",
"upload_time_iso_8601": "2025-10-09T07:37:52.526911Z",
"url": "https://files.pythonhosted.org/packages/23/bc/de3be8f781902f4ba051ad37c5ac45831caa3c658d5cd3d5af608dd02f26/seetrain_ml-0.1.6.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-10-09 07:37:52",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "seetrain",
"github_project": "seetrain",
"github_not_found": true,
"lcname": "seetrain-ml"
}