pytorch写张量pt文件,libtorch读张量pt文件

++直接在pytorch中,用torch.save保存的张量,可能因格式差异无法在C++中加载。++

以下是一个最简单的例子,展示如何在 Pytorch中保存张量到 TorchScript 模块,并在 C++ 中使用 LibTorch 加载。

Python 代码 (save_tensor.py)

复制代码
import torch

# 定义一个简单的 TorchScript 模块来包装张量
class TensorWrapper(torch.jit.ScriptModule):
    def __init__(self, tensor):
        super().__init__()
        self.tensor = torch.jit.Attribute(tensor, torch.Tensor)

# 创建一个张量
tensor = torch.randn(2, 3)

# 包装张量到模块
module = TensorWrapper(tensor)

# 保存模块到文件
torch.jit.save(module, "tensor.pt")

C++ 代码 (load_tensor.cpp)

复制代码
#include <torch/script.h>
#include <iostream>

int main() {
    // 加载 TorchScript 模块
    torch::jit::script::Module module = torch::jit::load("tensor.pt");

    // 获取张量(假设我们知道属性名为 tensor)
    torch::Tensor tensor = module.attr("tensor").toTensor();

    // 打印张量
    std::cout << tensor << std::endl;

    return 0;
}

这种方法可靠,因为 TorchScript 提供了跨语言的序列化支持,保证张量数据一致性。

相关推荐
冬奇Lab14 小时前
Agent 系列(23):Web Agent——让 Agent 真正浏览网页
人工智能·llm·agent
冬奇Lab14 小时前
每日一个开源项目(第135篇):codebase-memory-mcp - 给 AI Agent 一张代码库的知识图谱
人工智能·开源·llm
IT_陈寒17 小时前
JavaScript的闭包把我坑惨了,说好的内存会自动回收呢?
前端·人工智能·后端
星云穿梭19 小时前
用Python写一个带图形界面的学生管理系统——完整教程
python
金銀銅鐵20 小时前
用 Pygame 实现 15 puzzle
python·数学·游戏
jooloo21 小时前
Codex 间歇性 400 之谜:一条对话里,它为什么有时候用 chat/completions,有时候切到 responses?
人工智能
用户51914958484521 小时前
OpenSSL PKCS#12 PBMAC1 堆栈缓冲区溢出漏洞 (CVE-2025-11187) 分析与验证
人工智能·aigc
用户5191495848451 天前
HP Sound Research SECOMNService 权限提升漏洞利用工具
人工智能·aigc