LibTorch
文章平均质量分 59
C++ Torch
hanjialeOK
世上无难事,只怕有心人!
展开
-
[LibTorch & Win] 各版本 LibTorch 下载
值得一提的是:以下全为 Win 版本。Linux 版本点击 这里所有版本都是已经编译好的。libtorch 的版本和 pytorch 是对应的,比如 libtorch 1.6.0 对应于 pytorch 1.6.0。cuda 是向下兼容的,比如 libtorch 1.6.0 的 cu102 版本可以在 cuda-9.0 的机器上运行。 实测不兼容libtorch 版本越高,速度越快目前 官网 上仅提供最新 1.8.0 版本文章目录libtorch 1.7.0releaseDebuglibt原创 2021-03-25 20:55:01 · 20748 阅读 · 22 评论 -
[LibTorch & Linux] 各版本 LibTorch 下载
部分参考 这篇文章值得一提的是:以下全为 Linux 版本。Win 版本单击 这里所有版本都是已经编译好的。libtorch 的版本和 pytorch 是对应的,比如 libtorch 1.6.0 对应于 pytorch 1.6.0。cuda 的兼容性问题新版本无法在旧机器上运行。比如 libtorch 1.6.0 的 cu102 版本无法在 cuda-9.0 的机器上运行(已实测)。旧版本可以在新机器上运行。 比如 libtorch 1.7.1 的 cu110 版本可以在 cuda-11原创 2021-02-27 00:21:55 · 16354 阅读 · 17 评论 -
[LibTorch] 简单的例程
#include <torch/torch.h>#include <iostream>struct NetImpl : torch::nn::Module { NetImpl(int k) : conv1(torch::nn::Conv2dOptions(k, 256, 1) .bias(false)), batch_norm1(256), conv2(torch::nn::Conv2dO原创 2021-05-01 11:42:45 · 285 阅读 · 0 评论 -
[LibTorch] 指定参数不进行学习
出于不同的目的,希望固定预训练网络的某一些卷积层不进行参数的学习。文章目录整个网络不进行参数学习某一个 BN 层不进行参数学习网络中所有的 Conv 和 BN 层不进行参数学习整个网络不进行参数学习ResNet net = resnet50();net->to(device);torch::load(net, "../models/resnet50_caffe.pt");for (const auto& p : net->parameters()) { p.requi原创 2021-05-01 09:36:03 · 217 阅读 · 0 评论 -
[LibTorch] 使用 accessor 快速访问 tensor
参考 这篇文章accessor如果 tensor 在 CPU 上,使用 accessor 访问。/* x 的类型为 CPUFloatType { 100, 100 } */auto x_data = x.accessor<float, 2>();原创 2021-04-30 22:46:37 · 2328 阅读 · 5 评论 -
[LibTorch] Tensor 与 Mat 相互转换
文章目录单通道三通道CUDA2CPUTorch 框架搭建的神经网络,输入和输出的类型一般是 CUDAFloatType。如果是对图片进行处理,首先使用 OpenCV 读取图片,然后将其转换为 CUDAFloatType,经过神经网络模型进行处理后, 再把结果转为 cv::Mat,并通过 imwrite 输出图片。单通道神经网络输出的 tensor 的通道数为 1。#include <torch/torch.h>#include <torch/script.h>/* 初始原创 2021-04-30 15:37:50 · 3536 阅读 · 0 评论 -
[LibTorch] C++ 调用 PyTorch 导出的模型
参考文章C++部署pytorch模型利用LibTorch部署PyTorch模型问题pytorch 的神经网络模型有很多,但 libtorch 就特别少。现在面临的问题是要在 C++ 环境下应用神经网络模型,肯定不能直接使用 pytorch 模型。解决办法有两个:方法一是用 TorchScript 工具导出模型 poolnet.pt,模型中包含网络结构和参数权重,因此可以直接在 C++ 里面生成神经网络。方法二是用 C++ 复现网络结构,封装为为类对象,再从 poolnet.pt .原创 2021-04-24 11:49:34 · 2563 阅读 · 7 评论 -
[LibTorch] 参数注册 & 模块注册
参考文档Using the PyTorch C++ FrontendThe C++ Frontend文章目录LinearConv2d & BatchNorm2dPool & ReLULinearLinear 的注册方式有两种。第一种是冒号初始化时注册,如下struct Net : torch::nn::Module { Net(int64_t N, int64_t M) : fc(register_module("fc", torch::nn::.原创 2021-04-07 20:17:51 · 1166 阅读 · 0 评论