From 29ff7a2c9beba93a83b24702f3899a2c6c89eb0a Mon Sep 17 00:00:00 2001 From: Shaun Zhou Date: Thu, 8 Oct 2026 14:57:11 +0800 Subject: [PATCH] =?UTF-8?q?docs:=20=E6=B8=85=E6=8E=89=E5=A4=B1=E6=95=88?= =?UTF-8?q?=E7=9A=84=20train.py=20=E5=BC=95=E7=94=A8=E4=B8=8E=20ONNX=20?= =?UTF-8?q?=E5=AF=BC=E5=87=BA=E4=BE=9D=E8=B5=96=E7=BB=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 仓库里从来没有 train.py / eval.py,入口是 classify.py 与 detect.py。 - README 的计算后端与 SwanLab 示例改用 classify.py,看板路径跟着 work_dir 改为 runs/classify/swanlog。 - 删掉"train.py 的 train.restart_schedule 同理":restart_schedule 只在 engine/simclr.py 里实现,分类训练没有这个选项。 - 目录表里 configs/ 的子目录(原写 model/ dataset/ train/ eval/)与 scripts/ 的描述改成实际内容;入口那行补上 detect.py。 - 导出走 OpenVINO,没有脚本用到 onnx/onnxscript,删掉 export 依赖组。 Co-Authored-By: Claude Opus 5 --- README.md | 30 +++++------ pyproject.toml | 7 +-- scripts/generate_boxes.py | 2 +- uv.lock | 110 +------------------------------------- 4 files changed, 18 insertions(+), 131 deletions(-) diff --git a/README.md b/README.md index 6b68385..020dd2a 100644 --- a/README.md +++ b/README.md @@ -15,36 +15,37 @@ | 目录 | 作用 | | --- | --- | -| `configs/` | yaml 配置(`model/` 模型、`dataset/` 数据、`train/` 训练、`eval/` 评估) | +| `configs/` | yaml 配置(`cluster/` 聚类与自监督、`classify/` 分类、`detect/` 检测) | | `models/` | 模型骨架:`backbones/` + `necks/` + `heads/`,由 `defect_net.py` 组装 | | `datasets/` | 抛出数据样本的 Dataset 类、数据增强、监督信号编码 | | `data/` | 数据集本体或软链接(不入库,见 [data/README.md](data/README.md)) | -| `scripts/` | 格式转换、数据集切分、ONNX 导出等批处理脚本 | +| `scripts/` | 聚类、框生成、数据集装配与切片、OpenVINO 导出等批处理脚本 | | `engine/` | 训练 / 评估循环、损失、指标、优化器、检查点、SwanLab 可视化 | | `utils/` | 配置、注册表、日志、随机种子、设备解析(cuda/mps/cpu) | | `tests/` | 单元测试 | | `docs/` | 算法与数学说明文档 | | `figures/` | 文档用的 mermaid 图(`.mmd` 源 + `.md` 预览 + `.png`) | -入口:[classify.py](classify.py)(分类训练与评估)、[scripts/](scripts/) 下的聚类、导出与框生成脚本。 +入口:[classify.py](classify.py)(分类训练与评估)、[detect.py](detect.py)(YOLO 检测训练与评估), +以及 [scripts/](scripts/) 下的聚类、框生成、导出脚本。 ## 环境 ```bash uv sync # 安装依赖(含 swanlab) -uv sync --group export # 需要导出 ONNX 时再装 uv run python scripts/check_env.py # 自检(Python / PyTorch / 可用后端) ``` ### 计算后端 支持 **CUDA / MPS(Apple Silicon)/ CPU**。配置里的 `device: auto` 按 `cuda > mps > cpu` -自动挑最快的可用后端,也可以显式写 `cuda` / `mps` / `cpu`,或用命令行 `--device` 覆盖: +自动挑最快的可用后端(`classify.py` / `detect.py` / `cluster_unlabeled.py` 都一样),也可以显式写 +`cuda` / `mps` / `cpu`,或用命令行 `--device` 覆盖: ```bash -uv run python train.py --config configs/train/baseline.yaml # auto -uv run python train.py --config configs/train/baseline.yaml --device mps # 强制 Mac GPU -uv run python train.py --config configs/train/baseline.yaml --device cpu +uv run python classify.py --config configs/classify/film.yaml # auto +uv run python classify.py --config configs/classify/film.yaml --device mps # 强制 Mac GPU +uv run python classify.py --config configs/classify/film.yaml --device cpu ``` **显式指定不可用的后端会直接报错退出**,不会悄悄退回 CPU——训练慢几十倍却不吭声是最坏的情况。 @@ -61,7 +62,8 @@ uv run python train.py --config configs/train/baseline.yaml --device cpu ## 训练可视化(SwanLab) 训练过程通过 [SwanLab](https://swanlab.cn) 记录:按 step 记录各项损失与学习率,按 epoch 记录 -验证指标与显存峰值,实验的超参就是完整的 yaml 配置。在 `train.swanlab` 里配置: +验证指标与显存峰值,实验的超参就是完整的 yaml 配置。分类(`configs/classify/`)、检测 +(`configs/detect/`)与自监督(`simclr.swanlab`)都在各自配置的 `swanlab` 段里开关: ```yaml train: @@ -75,15 +77,15 @@ train: ```bash # 本地看板:不需要账号,训练时用 local 模式,另开终端起看板 -uv run python train.py --config configs/train/baseline.yaml --set train.swanlab.mode=local -uv run swanlab watch runs/baseline/swanlog # 默认 http://127.0.0.1:5092 +uv run python classify.py --config configs/classify/film.yaml --set train.swanlab.mode=local +uv run swanlab watch runs/classify/swanlog # 默认 http://127.0.0.1:5092 # 云端 uv run swanlab login # 首次使用需登录 -uv run python train.py --config configs/train/baseline.yaml # mode 默认 online +uv run python classify.py --config configs/classify/film.yaml # mode 默认 online # 离线跑完后再补传云端 -uv run swanlab sync runs/baseline/swanlog +uv run swanlab sync runs/classify/swanlog ``` 看板可以在训练**进行中**打开,指标边训边刷。端口冲突用 `-p 5100`,要局域网访问加 `-h 0.0.0.0`。 @@ -282,8 +284,6 @@ uv run python scripts/cluster_unlabeled.py --config configs/cluster/film.yaml \ --set simclr.epochs=5000 ``` -`train.py` 的 `train.restart_schedule` 同理。 - 续训时各项配置的行为: | 配置项 | 续训时 | diff --git a/pyproject.toml b/pyproject.toml index 59f237e..e12fa7d 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -28,18 +28,13 @@ dev = [ "pytest>=8.0", "ruff>=0.6", ] -# ONNX 导出(部署用),按需安装:uv sync --group export -export = [ - "onnx>=1.16", - "onnxscript>=0.2", -] # SHAP 归因定位(scripts/shap_boxes.py),按需安装:uv sync --group explain explain = [ "shap>=0.48", ] [tool.uv] -# 本仓库是应用而非库:不打包安装,直接从仓库根目录运行 train.py / eval.py。 +# 本仓库是应用而非库:不打包安装,直接从仓库根目录运行 classify.py / detect.py。 package = false # 训练机(Linux + Nvidia GPU)请用 CUDA 版 torch,例如: diff --git a/scripts/generate_boxes.py b/scripts/generate_boxes.py index 6224243..3ebf705 100644 --- a/scripts/generate_boxes.py +++ b/scripts/generate_boxes.py @@ -24,7 +24,7 @@ cv 不判类别,只定位,所以它只能配 `--target label`(默认), 分类器还没训练时就能先跑一版框出来看。它对 blackdot / whitedot / mosquito 这类局部目标 效果好;ripple / wrinkle 这种铺满整图的纹理类,本来就没有局部目标,它给不出有意义的框。 -产出是一个**自成一体的 YOLO 数据集**,可直接喂给 train.py: +产出是一个**自成一体的 YOLO 数据集**,可直接喂给 detect.py: ``` runs// diff --git a/uv.lock b/uv.lock index fb2e1f1..f3bd1eb 100644 --- a/uv.lock +++ b/uv.lock @@ -1,5 +1,5 @@ version = 1 -revision = 3 +revision = 5 requires-python = ">=3.12" resolution-markers = [ "python_full_version >= '4' and sys_platform == 'linux'", @@ -2192,47 +2192,6 @@ wheels = [ { url = "https://pypi.tuna.tsinghua.edu.cn/packages/b3/38/89ba8ad64ae25be8de66a6d463314cf1eb366222074cfda9ee839c56a4b4/mdurl-0.1.2-py3-none-any.whl", hash = "sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8", size = 9979, upload-time = "2022-08-14T12:40:09.779Z" }, ] -[[package]] -name = "ml-dtypes" -version = "0.6.0" -source = { registry = "https://pypi.tuna.tsinghua.edu.cn/simple" } -dependencies = [ - { name = "numpy" }, -] -sdist = { url = "https://pypi.tuna.tsinghua.edu.cn/packages/12/72/307d7c4bd0600601c7133fba5cb78af7db968152951c1cd473abb1cda782/ml_dtypes-0.6.0.tar.gz", hash = "sha256:5e60251d32ced5598972e4d5e06a2f044341f9291402551a3f6f0ec44f9299b0", size = 3032327, upload-time = "2026-08-13T14:14:40.215Z" } -wheels = [ - { url = "https://pypi.tuna.tsinghua.edu.cn/packages/84/6a/441eb053b078954f7fea284dfb288701884d0a1404d39babb858e1649023/ml_dtypes-0.6.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:5359c588cc62de6f78d7430f06b65853d884955494d86d6ad90b6dd64a3f3a08", size = 565447, upload-time = "2026-08-13T14:14:01.737Z" }, - { url = "https://pypi.tuna.tsinghua.edu.cn/packages/ed/cf/87e8a6c57eed63a91782a0d229856ddf73e138ce004dd71e2799a9dcdb33/ml_dtypes-0.6.0-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:37da32aa97749251025666d62372775019594577b9c9e9cfda83bed48d778fdb", size = 360227, upload-time = "2026-08-13T14:14:02.938Z" }, - { url = "https://pypi.tuna.tsinghua.edu.cn/packages/c7/f9/7d76c1eae866f5d4636401b31b6d6dd90e4b4ced1fa7cfdfcca9c60e4bd3/ml_dtypes-0.6.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:3b4a480aa8fd54a1805b8ac10f3f91763926a74f73c0c364c10f9231854f4170", size = 409890, upload-time = "2026-08-13T14:14:04.248Z" }, - { url = "https://pypi.tuna.tsinghua.edu.cn/packages/ba/db/9c61ec2760b5cbfb1c6558d5c991a6d8fd3271053c32db20506a9a90272b/ml_dtypes-0.6.0-cp312-cp312-win_amd64.whl", hash = "sha256:2a3e9d53925597fbffafd2a37048dadeddd0bdaba58058f6ae0869ed709a184d", size = 439333, upload-time = "2026-08-13T14:14:05.501Z" }, - { url = "https://pypi.tuna.tsinghua.edu.cn/packages/6a/57/780ca3e5ab135b9fbdd8e5441abf5f801b30398371b691291e05ab9834c0/ml_dtypes-0.6.0-cp312-cp312-win_arm64.whl", hash = "sha256:6eaed129a4afe90694b8685e2f9b6294849f5eda4af9a15be83a4326eeebd775", size = 552268, upload-time = "2026-08-13T14:14:06.866Z" }, - { url = "https://pypi.tuna.tsinghua.edu.cn/packages/50/51/fd1582b8f5ed8a9e7be0e161a6ea0dff70cb280479a12178df0b3a72700e/ml_dtypes-0.6.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:084dfe51a7ad58b171f05115f8226ed4233a454a1611371947e806e76f0c638d", size = 565468, upload-time = "2026-08-13T14:14:08.5Z" }, - { url = "https://pypi.tuna.tsinghua.edu.cn/packages/d2/22/20fd70ca6ed12446cb92d5b2a7745bd185f9d8b8cdeeadad976574398e6b/ml_dtypes-0.6.0-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:28d676428b104bb9717b0928bc5c5129f2d6b51b6727587cc4289e7bf8713cb5", size = 360232, upload-time = "2026-08-13T14:14:09.873Z" }, - { url = "https://pypi.tuna.tsinghua.edu.cn/packages/89/a5/da8ae6c6f1babe4b68e3e55d43d39b529e29774f10e0910671a6b8c86eb8/ml_dtypes-0.6.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:26b1f1fa4f0435a2946859823f6e2bf06796f1e9f10f5a05b08a5e3c8f46ff69", size = 410169, upload-time = "2026-08-13T14:14:11.036Z" }, - { url = "https://pypi.tuna.tsinghua.edu.cn/packages/e2/55/4561acefa00fa4bcbfb82ca6a48578b41f372cd7dd7cdd6eb4720abc2e5f/ml_dtypes-0.6.0-cp313-cp313-win_amd64.whl", hash = "sha256:fb87f46b4f7ad7b5d3ad8f4b452b024bd4229d44c8ff934798c1fe656210387a", size = 439357, upload-time = "2026-08-13T14:14:12.172Z" }, - { url = "https://pypi.tuna.tsinghua.edu.cn/packages/b1/5d/6a01538e507ef0ed5e879985b13a92467bf8960696fb1131f8b8cadc60ff/ml_dtypes-0.6.0-cp313-cp313-win_arm64.whl", hash = "sha256:57ed0d6b4ac5e7868361303a9c57fbcf63b768236ee14456f585dfcf260d0292", size = 552278, upload-time = "2026-08-13T14:14:13.539Z" }, - { url = "https://pypi.tuna.tsinghua.edu.cn/packages/d9/7a/97dc35667b7c9db33c5344c673cd27f87e34771875ea7100138726132ac9/ml_dtypes-0.6.0-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:84fa136b8602c8c39e3b6cb24918960cd6f36cade7a70376f56770729cd56510", size = 562551, upload-time = "2026-08-13T14:14:14.774Z" }, - { url = "https://pypi.tuna.tsinghua.edu.cn/packages/db/48/77f0ede10558d0d935da2e3276ed7e9c8cc2bad3463b9a0b66b03fc60be2/ml_dtypes-0.6.0-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:317be9967fb84b0ce4e80e6b1bf71213d21971621cf6f1e501a63602a95297bf", size = 360334, upload-time = "2026-08-13T14:14:16.079Z" }, - { url = "https://pypi.tuna.tsinghua.edu.cn/packages/1c/b1/1831dd8c9b06c013085d31a2ac4f03392d43bd36bfc6ff591a08bcedc1cf/ml_dtypes-0.6.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8f490c003369ce60e514a0c3b12374f05274c101fee1bead6740ec8a564032b0", size = 409966, upload-time = "2026-08-13T14:14:17.477Z" }, - { url = "https://pypi.tuna.tsinghua.edu.cn/packages/ff/ad/9c32c53f823dda3742df19a79c10bc198365937873ea125ba65747440c23/ml_dtypes-0.6.0-cp314-cp314-win_amd64.whl", hash = "sha256:d574c2b28921dc72e869df248f1a278f6eee176a1f237c8642e1a71eb15f3977", size = 457224, upload-time = "2026-08-13T14:14:18.608Z" }, - { url = "https://pypi.tuna.tsinghua.edu.cn/packages/41/3d/dd98205418a13353d41c52bf5326d8cbec515aace46174e23c6ea01c2978/ml_dtypes-0.6.0-cp314-cp314-win_arm64.whl", hash = "sha256:f4adb4af61516510d786cf8c01851a66f6d3ddfa79e1144deaa5b40d8507231e", size = 568378, upload-time = "2026-08-13T14:14:19.843Z" }, - { url = "https://pypi.tuna.tsinghua.edu.cn/packages/65/36/32e7beef3281fed74883451477ad976364323206dbfaa95e948ba788dac7/ml_dtypes-0.6.0-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:3e169214e0d80ff1c038e1b3017e33c23e43bdf948d42d31de8283111c7e2fa3", size = 590177, upload-time = "2026-08-13T14:14:20.971Z" }, - { url = "https://pypi.tuna.tsinghua.edu.cn/packages/d7/a2/99b3d9b3c984b3bd1e81d8244f1fa2f812e44060d853205b2df6271aa17c/ml_dtypes-0.6.0-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:573b11f3c327e17ef3826d266e676cf1149a1f3016f822a05f2306c55d8246bf", size = 363142, upload-time = "2026-08-13T14:14:22.463Z" }, - { url = "https://pypi.tuna.tsinghua.edu.cn/packages/0c/fb/8091c0aee7f2712de99c7fd4b1642382644dec6a4962effe4f5b9d16a973/ml_dtypes-0.6.0-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b76fa1d3f92967d58289ac47ab7458ede66e6f3527fff3e59142aee57d9307cd", size = 430645, upload-time = "2026-08-13T14:14:23.737Z" }, - { url = "https://pypi.tuna.tsinghua.edu.cn/packages/c4/6f/962d2c589513b5930d05b6eae5fbd22ad8bbcf26bb763449f3d8f912360f/ml_dtypes-0.6.0-cp314-cp314t-win_amd64.whl", hash = "sha256:3be9911d953f97cddded4b9961d7b650473b7e55806d20f6176f8356dfe7b38e", size = 465667, upload-time = "2026-08-13T14:14:25.04Z" }, - { url = "https://pypi.tuna.tsinghua.edu.cn/packages/aa/ca/bcb25e246edd19af5fa1cf6267040bd9977a7afca846e6cfd4a52078b44f/ml_dtypes-0.6.0-cp314-cp314t-win_arm64.whl", hash = "sha256:e74266ca8e97874a937b7646378c178025650a236584f7474d10d8086a6edea3", size = 572706, upload-time = "2026-08-13T14:14:26.296Z" }, - { url = "https://pypi.tuna.tsinghua.edu.cn/packages/12/42/46cb442648e3c774d8cb25f2e1e41d496cdcc91fbe9c2a6f75c0b8df7af6/ml_dtypes-0.6.0-cp315-cp315-macosx_10_15_universal2.whl", hash = "sha256:b1b503864fada3f74fabf8d9fee7b4c1cbe956301e6fdece975d5f77c2fce958", size = 562550, upload-time = "2026-08-13T14:14:27.542Z" }, - { url = "https://pypi.tuna.tsinghua.edu.cn/packages/07/56/844eff5af7a2d1a09d75df12c70225c3a6b6a771f95876b2bf5f7d10ad44/ml_dtypes-0.6.0-cp315-cp315-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:9c6ad60af4102789a5c09824004beade2f7f28cd1cd581ee5c170d9dc2fbb00e", size = 360332, upload-time = "2026-08-13T14:14:28.767Z" }, - { url = "https://pypi.tuna.tsinghua.edu.cn/packages/b6/29/b7165a3a76364a5baa6aa4ee82a0adf73a3c014b8cd126120b62cc087992/ml_dtypes-0.6.0-cp315-cp315-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d4f1b9329a251e4affe3bb58f4d3e2db22a714396fd7ffb40d0b5db423c24d17", size = 409964, upload-time = "2026-08-13T14:14:30.023Z" }, - { url = "https://pypi.tuna.tsinghua.edu.cn/packages/c8/2e/f61c54a0544b6a170ac1bb89bcf406af53fb2deffc5476b6d2d3df5ba13e/ml_dtypes-0.6.0-cp315-cp315-win_amd64.whl", hash = "sha256:488c99ab181a2f59d9ec3b12c5fa11ec904e92be2c4ba18cded54dd7501208fe", size = 457249, upload-time = "2026-08-13T14:14:31.213Z" }, - { url = "https://pypi.tuna.tsinghua.edu.cn/packages/63/00/bee1bc9faa02a46e7a851019fd23f47ca1f906609edbec8b6ba5decc3cc3/ml_dtypes-0.6.0-cp315-cp315-win_arm64.whl", hash = "sha256:de9d14748dbf3968951436ef514a29c9d1fe438aa680d110134ee2f7a9f9df18", size = 568381, upload-time = "2026-08-13T14:14:32.548Z" }, - { url = "https://pypi.tuna.tsinghua.edu.cn/packages/72/f7/9a5edede28f73185fd51d75030ef7f11d76997bab3a92427d986e54fe2eb/ml_dtypes-0.6.0-cp315-cp315t-macosx_10_15_universal2.whl", hash = "sha256:e25bb3b0ad1217b60626e4ed45b10ca170c41d99fbe44a12bebc1e07ec4aad55", size = 589877, upload-time = "2026-08-13T14:14:33.695Z" }, - { url = "https://pypi.tuna.tsinghua.edu.cn/packages/fd/81/d5924a141b850b606eb027493c9c3ca3c665cca5163af3f5b6e5e3345503/ml_dtypes-0.6.0-cp315-cp315t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:31f1ce979d31a357e95aa81812f20412c8c954fa43c44ee3ead1e1c8a78575ef", size = 362788, upload-time = "2026-08-13T14:14:34.996Z" }, - { url = "https://pypi.tuna.tsinghua.edu.cn/packages/59/8f/3298e3f334832bc28dd144af6b99cdc93502a8687e71922ea68b0a319929/ml_dtypes-0.6.0-cp315-cp315t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:e2d6149f3a57f405bcad5fb41e03218b8373936253f23e1ca84c0108abbc3392", size = 430823, upload-time = "2026-08-13T14:14:36.44Z" }, - { url = "https://pypi.tuna.tsinghua.edu.cn/packages/93/d2/f2dbf118f42ce4c325a139c9236737f436b7f8e00cd18701c99ef2405e6f/ml_dtypes-0.6.0-cp315-cp315t-win_amd64.whl", hash = "sha256:ce7563e0b1a4482cbc1b4a6272145e54e4489e54fe7428f94908c3d87103abfa", size = 465119, upload-time = "2026-08-13T14:14:37.776Z" }, - { url = "https://pypi.tuna.tsinghua.edu.cn/packages/5a/ff/bda40387b5c5c64254595f4d81a12351770856acc5de4e6d43606a31f161/ml_dtypes-0.6.0-cp315-cp315t-win_arm64.whl", hash = "sha256:f6cb525101b6b903779188c1e9e9490c343b455ab822883e02cf01e5547338d2", size = 572666, upload-time = "2026-08-13T14:14:38.993Z" }, -] - [[package]] name = "modeltraineval" version = "0.1.0" @@ -2258,10 +2217,6 @@ dev = [ explain = [ { name = "shap" }, ] -export = [ - { name = "onnx" }, - { name = "onnxscript" }, -] [package.metadata] requires-dist = [ @@ -2283,10 +2238,6 @@ dev = [ { name = "ruff", specifier = ">=0.6" }, ] explain = [{ name = "shap", specifier = ">=0.48" }] -export = [ - { name = "onnx", specifier = ">=1.16" }, - { name = "onnxscript", specifier = ">=0.2" }, -] [[package]] name = "mpmath" @@ -2642,65 +2593,6 @@ wheels = [ { url = "https://pypi.tuna.tsinghua.edu.cn/packages/a8/64/3708a90d1ebe202ffdeb7185f878a3c84d15c2b2c31858da2ce0583e2def/nvidia_nvtx-13.0.85-py3-none-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:cb7780edb6b14107373c835bf8b72e7a178bac7367e23da7acb108f973f157a6", size = 148878, upload-time = "2025-09-04T08:28:53.627Z" }, ] -[[package]] -name = "onnx" -version = "1.22.0" -source = { registry = "https://pypi.tuna.tsinghua.edu.cn/simple" } -dependencies = [ - { name = "ml-dtypes" }, - { name = "numpy" }, - { name = "protobuf" }, - { name = "typing-extensions" }, -] -sdist = { url = "https://pypi.tuna.tsinghua.edu.cn/packages/04/19/8ea73a64b368b75fe339771a20a02bc61ea1f551484c9e3d9d0bfbd0450f/onnx-1.22.0.tar.gz", hash = "sha256:ef40c0aaf0b643857ea9306fc7eddce17eaf9fb0407e4801f1fc5758443a38e0", size = 12024721, upload-time = "2026-06-15T12:50:05.354Z" } -wheels = [ - { url = "https://pypi.tuna.tsinghua.edu.cn/packages/ee/6a/481561f1093834376ed493e4ca42a73e5be0d50031f2969c86593bdc7c96/onnx-1.22.0-cp312-abi3-macosx_12_0_universal2.whl", hash = "sha256:596fbf0490947533c1c1045ba860851dc9fb77471023dac9a71ba5b42ceab103", size = 20167081, upload-time = "2026-06-15T12:49:32.078Z" }, - { url = "https://pypi.tuna.tsinghua.edu.cn/packages/84/55/b34fc2aa30aa54b4a775402d24c4082242c720283a274fe976ac8eb94480/onnx-1.22.0-cp312-abi3-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ae5a563f281cd9d2845622cecf6c092a57e4ee1b138f66fdbbdd4200567a5e16", size = 18889249, upload-time = "2026-06-15T12:49:34.7Z" }, - { url = "https://pypi.tuna.tsinghua.edu.cn/packages/09/a6/bd32357e6cc1ecb473afd78193d7231724f284435d2db25696ecfaaa1503/onnx-1.22.0-cp312-abi3-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:955e02e1f6d385b53d52f9cd7b9cdf5caf417c300bcfe3c64c6d542be763845b", size = 19106514, upload-time = "2026-06-15T12:49:37.424Z" }, - { url = "https://pypi.tuna.tsinghua.edu.cn/packages/5a/9d/3af461ac6c714b8b369cb71499659932f4f12cfb066250b62f7567c3d530/onnx-1.22.0-cp312-abi3-pyemscripten_2025_0_wasm32.whl", hash = "sha256:82e9f27fc1223cb06d68a56bed6f9d3caf3d0dad1b61bce45006d529b15bd94c", size = 16966387, upload-time = "2026-06-15T12:49:40.918Z" }, - { url = "https://pypi.tuna.tsinghua.edu.cn/packages/d0/f0/68195b5e5a53e333faf2660f5352ee43738d0e42fc5216cc6b1871a9fbfb/onnx-1.22.0-cp312-abi3-win32.whl", hash = "sha256:cc8b66b312f8f03a53e268afb67180a2d97dd12cc79e2b61361c6c0073448016", size = 17081568, upload-time = "2026-06-15T12:49:43.398Z" }, - { url = "https://pypi.tuna.tsinghua.edu.cn/packages/13/a8/734725bb703c5fabb687f79c79e51249475212b3eb37771ac4a4ac9b487f/onnx-1.22.0-cp312-abi3-win_amd64.whl", hash = "sha256:72ccebab3bac07215c204ce8848d42e78eaaa666badbf72d25cd359b9f269e3a", size = 17213290, upload-time = "2026-06-15T12:49:45.933Z" }, - { url = "https://pypi.tuna.tsinghua.edu.cn/packages/bd/2a/8ce48d8ae26a8761ad4e5dc771961b155c5c3c7c8540ec7f2f2d71b69af0/onnx-1.22.0-cp312-abi3-win_arm64.whl", hash = "sha256:f3c120dcdb70ad738f3c061b32798f408ea299eb69f84dd69ab4a6bf3c2ec01f", size = 17207030, upload-time = "2026-06-15T12:49:48.635Z" }, - { url = "https://pypi.tuna.tsinghua.edu.cn/packages/f3/13/47323b97846387848efb1044ded11bb94b83526f3d1fbdb37c6480d4520f/onnx-1.22.0-cp314-cp314t-macosx_12_0_universal2.whl", hash = "sha256:19e45e4af88e3fe3261458d4b8cc461957ae2782a358a3560503569bf3b23b72", size = 20176465, upload-time = "2026-06-15T12:49:51.311Z" }, - { url = "https://pypi.tuna.tsinghua.edu.cn/packages/13/0c/d3b8a7e7eee123938586c608bb9894b5723f2342b9450c0eec59fbec7099/onnx-1.22.0-cp314-cp314t-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c21a0e59fd967a95b358e4a6e756d1f1eec2d304a83480f329f66e30d2bf0223", size = 18894028, upload-time = "2026-06-15T12:49:54.451Z" }, - { url = "https://pypi.tuna.tsinghua.edu.cn/packages/b8/8a/da2a97ab46fe6e0cd9beb3ac14603a22f5be492f9ca347faf8233a07bb33/onnx-1.22.0-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:2632406b8f523ef2e2873c363f90b20a3d88c0fbcfac757d3addffccf8f452c2", size = 19110420, upload-time = "2026-06-15T12:49:57.665Z" }, - { url = "https://pypi.tuna.tsinghua.edu.cn/packages/b9/a3/ce984063017518307ebfaa545782fc400e593dc2d7fdf4f23ce4be1ed197/onnx-1.22.0-cp314-cp314t-win_amd64.whl", hash = "sha256:a3a39fc4643867aecb33417fdddb11e308ee79d2d4a584b9d50cc7aec2091b13", size = 17237547, upload-time = "2026-06-15T12:50:00.382Z" }, - { url = "https://pypi.tuna.tsinghua.edu.cn/packages/00/50/257a880384a1dd502d543b0067945074d63cd17d0840e958355bc8197da8/onnx-1.22.0-cp314-cp314t-win_arm64.whl", hash = "sha256:8e268cdc0547e3949799ffd4a44451dc2b9080b57d0824a2db680b6ec65506f0", size = 17231391, upload-time = "2026-06-15T12:50:03.047Z" }, -] - -[[package]] -name = "onnx-ir" -version = "1.0.0" -source = { registry = "https://pypi.tuna.tsinghua.edu.cn/simple" } -dependencies = [ - { name = "ml-dtypes" }, - { name = "numpy" }, - { name = "onnx" }, - { name = "sympy" }, - { name = "typing-extensions" }, -] -sdist = { url = "https://pypi.tuna.tsinghua.edu.cn/packages/d6/c2/61194cec0dbc5622273c0ebd592d37cc1dca0d7f1a744f02edd45ac905a3/onnx_ir-1.0.0.tar.gz", hash = "sha256:9e261f25fde8da9612ae5cb43b3b374d5ff469c04af0363cad588b2bb000b812", size = 163121, upload-time = "2026-08-11T14:49:46.895Z" } -wheels = [ - { url = "https://pypi.tuna.tsinghua.edu.cn/packages/91/cd/6d1637172eb59c7b18ac90ed089d1f599a11fe0e63b4db2d017f3bb38a32/onnx_ir-1.0.0-py3-none-any.whl", hash = "sha256:e578f0d608d3062866b48223616eb2d10a6d6d01f8b8faac596129034f483cc7", size = 185849, upload-time = "2026-08-11T14:49:45.524Z" }, -] - -[[package]] -name = "onnxscript" -version = "0.7.1" -source = { registry = "https://pypi.tuna.tsinghua.edu.cn/simple" } -dependencies = [ - { name = "ml-dtypes" }, - { name = "numpy" }, - { name = "onnx" }, - { name = "onnx-ir" }, - { name = "packaging" }, - { name = "typing-extensions" }, -] -sdist = { url = "https://pypi.tuna.tsinghua.edu.cn/packages/c4/3a/4d79bce3f460e0df7fed54a92ce80827f25da66511da368bb00783ad8d20/onnxscript-0.7.1.tar.gz", hash = "sha256:309fb86484b11fa4ded90dba580e0d63f1a0827588e521cecaf2eeddb46d6e86", size = 618160, upload-time = "2026-06-29T23:33:21.526Z" } -wheels = [ - { url = "https://pypi.tuna.tsinghua.edu.cn/packages/dd/bd/a0c8e737b6afda10e42a597787d53d5b66e00268df6f59184701eeae37d9/onnxscript-0.7.1-py3-none-any.whl", hash = "sha256:544763b7fdef49940cdd9412ff5135cbae96d59ac6bc1921457f21280f40f4b7", size = 721970, upload-time = "2026-06-29T23:33:23.298Z" }, -] - [[package]] name = "openai" version = "1.109.1"