用途:这是 OpenVINO 仓库中用于升级 PyTorch 版本的端到端操作流程,覆盖 layer tests 与 PyTorch 前端(PyTorch FE)所用的 torch、torchvision 版本更新,以及升级后常见回归问题的排查与修复。
主要能力与用法:先确认目标版本范围(torchvision minor = torch minor + 15,如 torch 2.9.0 对应 torchvision 0.24.0),并确认是否改动 compile_gptq.txt;默认不动。更新版本固定:tests/constraints.txt 用 ~= 风格,tests/requirements_pytorch 用精确 ==,requirements_pytorch 中不包含 torchaudio(自 2.8 起已从官方安装说明移除,且这些测试不用它),并注意 --extra-index-url https://download.pytorch.org/whl/cpu 需放在 torch==、torchvision== 行之前。安装示例:pip3 install --index-url https://download.pytorch.org/whl/cpu --upgrade torch==X.Y.0 torchvision==A.B.0。
在 tests/layer_tests 下针对新构建的 openvino_pytorch_frontend 运行两套 pytest:TorchScript 路径用 -m precommit,torch.export/FX 路径用 PYTORCH_TRACING_MODE=EXPORT 加 -m precommit_torch_export,均需 -n auto(需 pytest-xdist)。失败按类别分诊:A 新aten算子无翻译器(如 *_copy 系列),可在 op_table.cpp 中别名到已有翻译器或写适配包装;B 翻译器仅注册于 FX 需补 TS 注册;C FX-only 测试误入 TS 模式需去掉 precommit 标记或在测试体内 pytest.skip;D 更严格类型与默认 kwargs 变化;E 精度回退需先确认是否已知插件问题。改 C++ 后需重新 cmake --build "$OV_REPO/build" --target openvino_pytorch_frontend -j$(nproc)。
限制与注意:不得在未确认语义等价时把新算子直接别名到现有翻译器;新增 TS 注册需补 precommit 与 nightly 标记以覆盖测试;model hub 测试中若因 torchvision 移除 API 报 ImportError,可用同形状 torch.randn(...) 输入替换并清理无用导入;遍历 ov.Node 图时不要依赖 id(node),应用 get_friendly_name()。torchaudio 已处于维护阶段且可能滞后 torch,盲目固定 torchaudio==<torch 版本> 会导致安装失败。缺少的版本矩阵细节需查阅官方发布矩阵。