libtorch
libtorch基础教程,目前计划从基础操作写到模型部署,写作周期可能较长。(本人创作不易,转载请联系作者)
陨星落云
这个作者很懒,什么都没留下…
展开
-
cuda驱动更新下载以及安装
可选择在NVIDIA控制面板查看。原创 2023-07-02 14:15:59 · 2457 阅读 · 0 评论 -
libtorch中的MNIST数据集分类
MNIST分类#include <torch/torch.h>#include <torch/script.h>#include <opencv2/opencv.hpp>#include <iostream>#include <iomanip>//// 定义网络模型struct Net : torch::nn::Module { //构造函数(初始化),设计网络结构 Net() { // 构造并注册原创 2022-01-03 17:24:15 · 952 阅读 · 0 评论 -
libtorch遍历Tensor
#include <iostream>#include <time.h>#include <torch/torch.h>#include <torch/script.h>#include <opencv2/opencv.hpp>using namespace torch::indexing;using namespace std;int main() { torch::Tensor M = torch::arange(0, 2原创 2021-11-30 17:44:15 · 2042 阅读 · 0 评论 -
7.libtorch张量的合并与拆分
表 2-6. 合并与拆分函数描述torch::hstack沿着水平方向(1维度)拼接torch::vstack沿着竖直方向(0维度)拼接torch::dstack沿着第2维度方向(2维度)拼接torch::cat将两个张量(tensor)拼接在一起,cat是concatenate的意思,即拼接,联系在一起torch::chunk(intput,chunks,dim=0)把一个tensor均匀分割成若干个小tensor。torch::split(t原创 2021-11-14 12:36:52 · 2347 阅读 · 0 评论 -
libtorch通过异常查看错误
#include <torch/torch.h>#include <torch/script.h>#include <opencv2/opencv.hpp>using namespace torch::indexing;int main() { try { std::cout << torch::range(1, 3, 1).reshape({ 3,1 }).expand({ 3, 4 }) << std::endl; } cat原创 2021-11-09 17:25:33 · 1686 阅读 · 0 评论 -
6.libtorch张量的切片与索引
表 2-5. 张量的切片与索引表达式描述torch::index通过索引获取张量的值torch::indexing::Slice切片操作torch::indexing::Nonea.index({Slice(None)})等价于pytorch中的a[:]。torch::index_put_通过切片或索引改变张量的值torch::masked_select根据条件选出指定的元素值例2-10:索引与切片#include <torch/torc原创 2021-11-09 14:30:41 · 3753 阅读 · 3 评论 -
5.libtorch张量的形状与维度
在以张量形式处理数据时,经常需要重新改变张量的形状。例如,一个N×N的张量可以重新排列成长度为2N的一维张量,或者一组一维张量可以级联在一起或者堆叠在一起形成二维张量。libtorch提供了这种类型的函数集合,详细见表2-4。表 2-4. 张量的形状与维度函数/方法描述reshape或view用来重新调整 tensor 的形状。flatten返回一个连续的展平张量。如果start_dim或end_dim 被传递,只有开始start_dim和结束的维度end_dim被展平。元原创 2021-11-08 17:23:45 · 992 阅读 · 0 评论 -
4. libtorch张量初始化
表 2-3. 创建张量初始化函数名张量类型torch::tensor创建自定义元素的张量torch::zeros创建全0的张量torch::ones创建全为1的张量torch::eye创建对角为1的张量torch::full创建指定值和尺寸的张量torch::diag创建指定主对角线值的张量,除主对角线外其他元素都为0torch::range在指定的开始、结束和增量值之间创建具有均匀间隔值的张量(包含end,默认浮点类型)torc原创 2021-11-08 14:29:58 · 603 阅读 · 0 评论 -
3. libtorch张量基本数值类型
表 2-2. 张量基本数值类型类型变量描述intkInt8,kInt16,kInt32,kInt64 缩写(kI8,kI16,kI32,kI64)整数uintkUInt8 缩写(kU8)无符号整数floatkFloat16,kFloat32,kFloat64 缩写(kF16,kF32,kF64)浮点数boolkBool布尔类型例2-2:张量基本数值类型#include <torch/torch.h>#include <to原创 2021-11-08 14:27:43 · 936 阅读 · 0 评论 -
1. libtorch主要模块
表 1-1. libtorch主要组成部分组成模块描述torch::Tensor可自动微分、高效的 CPU 和 GPU 启用张量torch::nn用于神经网络建模的可组合模块的集合torch::optim使用 SGD、Adam 或 RMSprop 等优化算法来训练您的模型torch::data数据集、数据管道和多线程、异步数据加载器torch::serialize用于存储和加载模型检查点的序列化 APItorch::python用胶水将你的 C原创 2021-11-08 14:24:04 · 248 阅读 · 0 评论 -
2. libtorch张量基本属性
通过创建一个TensorOptions对象,该对象表示需要梯度的 32 位浮点数、密集张量,并位于 CUDA 设备 0 上: auto options = // struct c10::TensorOptions torch::TensorOptions() // 创建张量选项,用于设置张量的属性 .dtype(torch::kFloat32) //数据类型 .layout(torch::kStrided) //密集张量 .device(torch::kCUDA, 0) //使用GPU原创 2021-11-08 14:11:06 · 1227 阅读 · 0 评论 -
在visual studio 2019中配置libtorch+Opencv4.3.0
准备工作:关于opencv与visual studio 2019下载配置,参考在VS2019中配置Boost C++、NumCpp、Eigen 和opencv4.3.0库环境关于cuda配置可以参考这篇文章,建议安装cuda10.2。1.下载libtorchibtorch使用所需要的环境和训练最好保持一致,其中cuda,显卡驱动以及libtorch版本配置一般不应低于训练环境。尤其是libtorch版本要求更为严格,否则部分pytorch的api无法在libtorch中使用。本文中以libtorc原创 2021-11-07 11:47:58 · 2891 阅读 · 0 评论