pytorch从python转 c++涉及到的数据保存加载问题;libtorch

这篇具有很好参考价值的文章主要介绍了pytorch从python转 c++涉及到的数据保存加载问题;libtorch。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

pytorch 从python 转 c++涉及到的数据保存加载问题

1. torch.nn.Module 保存 state_dict 无法被 c++访问,只能转化为 python字典

python代码

model = ThreeLayer_FCNN_Net()
model.load_state_dict(ret_load)
w = {k: v for k, v in model.state_dict().items()}
torch.save(w, "data.pkl")

c++代码

std::vector<char> get_the_bytes(std::string filename) {
    std::ifstream input(filename, std::ios::binary);
    std::vector<char> bytes(
        (std::istreambuf_iterator<char>(input)),
        (std::istreambuf_iterator<char>()));
    input.close();
    return bytes;
}
std::vector<char> f = get_the_bytes("../48_channal_guozi_2.pkl");
torch::IValue x = torch::pickle_load(f);
auto dict = x.toGenericDict();
std::cout << "dict: " << dict << std::endl;

2. 保存 Tensor张量,C++加载 Tensor张量

python代码

data = torch.ones(3, 4)
torch.save(data, "data.pkl")

c++代码文章来源地址https://www.toymoban.com/news/detail-645854.html

std::vector<char> f = get_the_bytes("../48_channal_guozi_2.pkl");
torch::IValue x = torch::pickle_load(f);
auto my_tensor = x.toTensor();
std::cout << "my_tensor: " << my_tensor << std::endl;

到了这里,关于pytorch从python转 c++涉及到的数据保存加载问题;libtorch的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • pytorch保存、加载和解析模型权重

    1、模型保存和加载          主要有两种情况:一是仅保存参数,二是保存参数及模型结构。 保存参数:          torch.save(net.state_dict()) 加载参数(加载参数前需要先实例化模型):          param = torch.load(\\\'param.pth\\\')          net.load_state_dict(param) 保存模型结构

    2024年02月16日
    浏览(40)
  • 现有模型的保存与加载(PyTorch版)

    我们以VGG16网络为例,来说明现有模型的保存与加载操作。 保存与加载方式均有两种,接下来我们分别来学习这两种方式。 注意:保存与加载不在同一个py文件中,我们设定保存操作在save.py文件中,而加载操作在load.py文件中。 保存模型的两种方式如下代码所示,第一种为既

    2024年02月09日
    浏览(40)
  • pytorch11:模型加载与保存、finetune迁移训练

    往期回顾 pytorch01:概念、张量操作、线性回归与逻辑回归 pytorch02:数据读取DataLoader与Dataset、数据预处理transform pytorch03:transforms常见数据增强操作 pytorch04:网络模型创建 pytorch05:卷积、池化、激活 pytorch06:权重初始化 pytorch07:损失函数与优化器 pytorch08:学习率调整策略

    2024年02月01日
    浏览(46)
  • git 查看提交涉及到的文件

    使用 git log 查看commit id。 于是,我们根据 id eb87d6720835ae13efe31bcbfcd6f73e6baab9d4查看。 使用 git show 命令查看提交的文件和文件内容。

    2024年02月13日
    浏览(45)
  • 深度学习技术栈 —— Pytorch中保存与加载权重文件

    权重文件是指训练好的模型参数文件,不同的深度学习框架和模型可能使用不同的权重文件格式。以下是一些常见的权重文件格式: PyTorch 的模型格式: .pt 文件。 Darknet 的模型格式: .weight 文件。 TensorFlow 的模型格式: .ckpt 文件。 一、参考文章或视频链接 [1] Navigating Mode

    2024年01月19日
    浏览(53)
  • 网络安全涉及到的知识积累(5)

    1.bp里的raw、params、headers、hex几个格式分别表示什么? Raw:web请求的raw格式,包含请求地址、http协议版本、主机头、浏 览器信息、Accept可接受的内容类型、字符集、编码方式、cookie等。我们可以手工去修改这些信息,对服务器端进行渗透测试。 params:客户端请求的参数信息

    2024年02月11日
    浏览(34)
  • java基础中键盘录入涉及到的方法

    总的方法有以下几种: next()、nextLine()、nextInt()、nextDouble() 其中,next()、nextLine()在键盘录入时可以接收任意数据,但是都会返回的内容都是字符串形式; 比如:键盘录入abc,那么会把abc看做字符串返回。键盘录入123,那么会把123看做字符串返回。  代码示

    2024年02月07日
    浏览(40)
  • 利用pytorch自定义CNN网络(五):保存、加载自定义模型【转载】

    本文转载自: PyTorch | 保存和加载模型 本文主要介绍如何加载和保存 PyTorch 的模型。这里主要有三个核心函数: torch.save :把序列化的对象保存到硬盘。它利用了 Python 的 pickle 来实现序列化。模型、张量以及字典都可以用该函数进行保存; torch.load:采用 pickle 将反序列化的

    2024年02月13日
    浏览(37)
  • Python使用 YOLO_NAS_S 模型进行目标检测并保存预测到的主体图片

    使用 YOLO_NAS_S 模型进行目标检测,并保存预测到的主体图片 安装包: 安装所需的库和框架。确保已经安装了 OpenCV、PyTorch 和 torchvision 下载 YOLO_NAS_S 模型的权重文件,并加载模型 进行图像预处理。对于每张输入图像,需要将其转换为模型可接受的格式,并进行归一化处理 使

    2024年02月10日
    浏览(45)
  • 线性代数中涉及到的matlab命令-第一章:行列式

    目录 1,逆序数  2,行列式定义和性质 2.1,常用特性及命令  2.2,求行列式 2.3,行列式的性质  2,行列式按行(列)展开  3,范德蒙德行列式   在学习线性代数过程中,发现同步使用MATLAB进行计算验证可以加深对概念的理解,并能掌握MATLAB的命令和使用方法; 使用的线性

    2024年02月04日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包