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 提供了跨语言的序列化支持,保证张量数据一致性。

相关推荐
呆萌的代Ma1 分钟前
python读取并加载.env的配置文件
python
Muyuan19982 分钟前
27.RAG 系统中的上下文充分性判断:从 Chunk 数量、FAISS 距离到 LLM Relevance Gate
python·django·pdf·fastapi·faiss
小陈phd11 分钟前
TensorRT 入门完全指南(一)——从核心定义到生态工具全解析
人工智能·笔记
CeshirenTester28 分钟前
从0到1学自动化测试该怎么规划?
人工智能
:mnong31 分钟前
以知识驱动 AIAD 行业进化
人工智能·cad
U盘失踪了38 分钟前
python curl转python脚本
开发语言·chrome·python
ZhengEnCi40 分钟前
03-注意力机制基础 📚
人工智能
FQNmxDG4S41 分钟前
Java泛型编程:类型擦除与泛型方法的应用场景
java·开发语言·python
我是大聪明.1 小时前
CUDA矩阵乘法优化:共享内存分块与Warp级执行机制深度解析
人工智能·深度学习·线性代数·机器学习·矩阵