尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

common.py 3个关键函数拆解:PatchTSMixer 时序预测如何在 NPU 上完成本地加载与确定性推理

common.py 3个关键函数拆解:PatchTSMixer 时序预测如何在 NPU 上完成本地加载与确定性推理 common.py 3个关键函数拆解PatchTSMixer 时序预测如何在 NPU 上完成本地加载与确定性推理【免费下载链接】test-patchtsmixer-npu用户可直接运行此项目在华为昇腾NPU上执行PatchTSMixer多变量时序预测获取96步未来预测值含位置logits与类别argmax并验证模型精度与性能。项目包含完整迁移交付物模型权重、推理脚本、输出校验全程无CPU回退实测单次前向仅需10.58毫秒。项目地址: https://ai.gitcode.com/atlasleong/test-patchtsmixer-npu本文带你拆解test-patchtsmixer-npu项目的common.py看懂其中3 个关键函数——本地加载模型、构造确定性输入、一次预测出双输出——如何协作让 IBM PatchTSMixer 多变量时序预测模型在华为昇腾 NPU 上全程无 CPU 回退运行单次前向实测仅10.58 毫秒稳定输出 96 步未来预测值。项目一眼速览这个项目是一个开箱即跑的昇腾 NPU 时序预测交付仓库结构非常克制文件职责inference.pyNPU 前向入口打印设备标记与预测结果common.py自包含工具函数本文主角model/固定权重快照config safetensorsrequirements.txttransformers 5.15.0、numpy、safetensors 等依赖模型输入为(1, 512, 7)的多元时序上下文输出 96 步 × 7 通道的连续预测值position_logits (1, 96, 7)以及每个预测位置取 argmax 得到的离散通道 idclass_ids (1, 96)。关键函数 1load_model——100% 本地加载模型权重想避免运行时偷偷联网下载模型核心就是本地加载这两个字。common.py的做法值得抄作业把模型路径写成语义明确的字面量MODEL_PATH ./model./前缀让这是本地路径一目了然见 common.py用_ensure_delivery_cwd()先把工作目录对齐到交付根目录保证相对路径永远指向 model/ 快照调用PatchTSMixerForPrediction.from_pretrained(./model, local_files_onlyTrue)local_files_onlyTrue从机制上禁止任何网络访问见 common.py。加载完成后执行model.eval()并to(device)放到npu:0。模型本身是标准 Transformers 架构model_typepatchtsmixer19.6 万参数、float32无需自定义远程代码配置可直接查看 model/config.json。运行前可以先用npu-smi info确认昇腾设备在线本项目实测环境为 Ascend 910B4-1 × 8关键函数 2make_input——一行构造可复现的确定性输入时序预测的验收最怕这次和上次结果不一样。make_input用固定随机种子彻底解决这个问题先调用 set_seed 同时锁死torch、numpy、random三套随机数生成器固定种子FIXED_SEED 20260815再用torch.randn(batch_size, 512, 7)生成标准正态的多元时序上下文形状(batch_size, context_length, num_input_channels)与模型的past_values契约完全一致最后.to(device)把张量直接送上 NPU全程不经过 CPU 中转。这就是确定性输入的全部秘密同一颗种子 → 同一份字节级一致的输入因此 CPU 基线与 NPU 推理可以逐值对比。实测 CPU 与 NPU 输出的max_abs_error仅约3.9e-05离散 argmax 一致率 100%。 换成真实数据时只需按(batch_size, 512, 7)语义构造past_values张量送入模型即可输入契约不变。关键函数 3run_forward——一次前向两份语义不同的输出run_forward 是三者中最有信息量的函数一次torch.no_grad()前向同时产出两种语义的输出——position_logits模型预测头原生的连续值形状(B, 96, 7)即未来 96 步、每步 7 个通道的预测值class_ids对position_logits在通道维做argmax得到的离散 id形状(B, 96)int64。把预测头映射成position_logits class_ids的双角色契约是时序模型接入标准 sequence-prediction 评测流程的常见技巧新手理解这一点比背 API 更重要。三个函数如何串成完整推理入口脚本 inference.py 的编排非常直白设备检查无 NPU 直接报错拒绝 CPU 回退 → set_seed(20260815) → load_model(npu:0) → make_input(seed, batch_size1, devicenpu:0) → warmup 一次 torch.npu.synchronize() → run_forward(model, past_values) # 被计时 → 落盘 outputs/*.npy 并 np.load 重载校验一次真实运行的终端验收输出如下含INPUT_DEVICEnpu:0、CPU_FALLBACKfalse、前 8 个真实预测值等机器契约标记以下是由 AI Agent 驱动的完整适配工作流截图可以看到从模型审计、CPU 基线到 NPU 前向、精度对比、性能实测的完整证据链快速上手自己动手跑一遍依赖由昇腾 worker 镜像提供torch/torch_npu业务侧只需安装 requirements.txt 中的 5 个包然后执行python3 inference.py关注输出末尾这几行即可判断推理是否成功CPU_FALLBACKfalse FORECAST_COUNT672 ARGMAX_TOP_CLASS1 INFERENCE_WALL_MS10.580024 EXIT_CODE0小结3 个函数教给你的 3 个工程习惯本地加载路径字面量 local_files_onlyTrue让不联网可静态证明common.py确定性输入一次性锁定 torch / numpy / random 三套种子验收才有基准common.py单一职责的前向封装把前向 输出契约收敛到一个函数里方便计时、落盘与校验复用common.py。照这三步写你自己的时序模型迁移到 NPU 时也能拿到同样干净、可复现的推理结果。【免费下载链接】test-patchtsmixer-npu用户可直接运行此项目在华为昇腾NPU上执行PatchTSMixer多变量时序预测获取96步未来预测值含位置logits与类别argmax并验证模型精度与性能。项目包含完整迁移交付物模型权重、推理脚本、输出校验全程无CPU回退实测单次前向仅需10.58毫秒。项目地址: https://ai.gitcode.com/atlasleong/test-patchtsmixer-npu创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表