win10 VS2019上libtorch库配置过程

win10 VS2019上libtorch库配置过程

  • 0 引言
  • 1 获取libtorch
  • 2 在VS上配置使用libtorch库
  • 3 结语


0 引言

💻💻AI一下💻💻
  libtorch库是一个用于深度学习的C++库,是PyTorch的官方C++前端。它提供了用于构建和训练深度学习模型的高级API,并支持张量计算、自动微分和模型导出。libtorch库可以用于开发高性能、跨平台的深度学习应用程序,包括模型部署、推理和嵌入式系统。它提供了一种与Python无关的方式来使用PyTorch的功能,使得开发人员可以在不依赖于Python的环境中使用PyTorch的强大功能。libtorch库还支持与其他C++库和工具的集成,如OpenCV和CUDA,从而进一步扩展其应用范围。

  本篇主要讲述如何获取、配置和简单使用libtorch库,并分享配置过程中遇到的一些问题。下面是主要内容。

1 获取libtorch

  libtorch库文件可以从官网获取,进入官网后找到下面界面,然后选择自己需要的版本,如果所使电脑显卡支持GPU可以下载"CUDA“版本的库,一般情况下载图示CPU版本的即可,下载链接在字段"Run this Command"一栏。debug和Release版本的libtorch库都要下载,后面配置到VS时要用到。


  如果想要获取其它版本的库,可以点击上图最后的按钮”Previous versions of Pytorch“,得到一个新的网页,可以在网页中找自己需要的版本,也可以进网站进行下载,下载界面如下。如果获取 GPU版本的,可以更改上面网站的后缀到需要的gpu版本,如”/cpu“改为”/cu118“


2 在VS上配置使用libtorch库

  下载完成libtorch库后要配置到VS中了。配置方法种吧,一种就是原始配置方法,将库目录及相关lib手动添加到VS中,然后缺少什么就补什么;另一种方法是借用`VSIXTorch工具``进行配置,本篇简单介绍下使用VSIXTorch工具配置的过程。

  (1) VSIXTorch工具获取:进入网站,然后根据自己VS的版本下载对应版本的VSIXTorch扩展工具。


  (2) 安装VSIXTorch工具:安装较为简单,以管理员身份运行VSIXTorch.exe然后工具会自行找到对应版本并添加到扩展,需要注意的是安装时可以不联网,但是要关闭已打开的VS工程。

  (3) 检查是否安装成功:安装完成之后打开VS2019,下拉找到扩展的Torch工程项目创建向导,也可以直接在搜索框输入Torch进行查找,安装成功后界面如下。如果未找到,就需要检查电脑上的VS版本与扩展工具的版本是否匹配,可以重新获取VSIXTorch工具,再次进行安装尝试。


  (4) 库加载到项目:点击创建TorchProject,设置完成工程存放路径,再点击创建时会弹出下面界面,这时将上面下载到的Debug和Release libtorch库分别填入对应位置,再点击OK项目创建完毕;


  (5) 尝试运行测试代码:创建torchProject后会自动把创建一段试程序,尝试编译运行,编译的时候可能会报以下错误

严重性 代码 说明 项目 文件 行 禁止显示状态
错误 MSB8036 找不到 Windows SDK 版本 10.0.18362.0。请安装所需版本的 Windows SDK,或者在项目属性页中或通过右键单击解决方案并选择“重定解决方案目标”来更改 SDK 版本。

  通过修改:属性->windows SDK版本,即可解决上述报错问题。如果遇到其他问题,期待你的留言讨论。下面是自动创建的测试代码。

#include <torch/torch.h>
#include <iostream>

int main() {
  torch::Tensor tensor = torch::rand({2, 3});
  if (torch::cuda::is_available()) {
	  std::cout << "CUDA is available! Training on GPU" << std::endl;
	  auto tensor_cuda = tensor.cuda();
	  std::cout << tensor_cuda << std::endl;
  }
  else
  {
	  std::cout << "CUDA is not available! Training on CPU" << std::endl;
	  std::cout << tensor << std::endl;	  
  }

  std::cin.get();
}

  如果编译没有报错,不出意外的话,会得到下面结果😜:


3 结语

  本篇讲述了如何获取、配置libtorch库的过程,分享配置过程中遇到的问题及解决办法。






😜
😜😜
😜😜😜😜

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/950165.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

通过gradle发布aar或jar携带sources-jar到maven nexus

找了很久&#xff0c;没有找到满意的。终于找到一个好的办法。 gradle7.x适用。比以前的写法简洁。 发布传统的jar工程 比如okhttp&#xff0c;fastjson等项目&#xff0c;纯java工程。 直接创建新文件publish.gradle: apply plugin: maven-publishProperties properties …

STM32-笔记38-I2C-oled实验

一、什么是I2C&#xff1f; I2C总线&#xff0c;全称Inter-Integrated Circuit&#xff08;互连集成电路&#xff09;&#xff0c;是一种由Philips&#xff08;现NXP半导体&#xff09;公司在1980年代初开发的同步 串行 半双工通信总线。 二、有了串口通信为什么要使用I2C&…

【Linux系列】并发与顺序执行:在 Linux 脚本中的应用与选择

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

“AI 视频图像识别系统,开启智能新视界

咱老百姓现在的生活啊&#xff0c;那是越来越离不开高科技了&#xff0c;就说这 AI 视频图像识别系统&#xff0c;听起来挺高大上&#xff0c;实际上已经悄无声息地融入到咱们日常的方方面面&#xff0c;给咱带来了超多便利。 先讲讲安防领域吧&#xff0c;这可是 AI 图像识别的…

Burpsuite20241102macM1版安装

1、安装jdk11 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" brew update brew install openjdk11 echo export PATH"/opt/homebrew/opt/openjdk11/bin:$PATH" >> ~/.zshrc source ~/.zshrc j…

NVIDIA在CES 2025上的三大亮点:AI芯片、机器人与自动驾驶、全新游戏显卡

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

PDFMathTranslate: Star13.8k,一款基于AI的PDF文档全文双语翻译PDF文档全文双语翻译,保留格式神器,你应该需要它

嗨&#xff0c;大家好&#xff0c;我是小华同学&#xff0c;关注我们获得“最新、最全、最优质”开源项目和高效工作学习方法 PDFMathTranslate是一个开源项目&#xff0c;旨在为用户提供便捷的PDF科学论文翻译解决方案。它不仅能够翻译文本&#xff0c;还能保留公式、图表、目…

h264之多视点mvc编码及解码过程(JMVC平台举例)

h264标准参考平台JMVC是针对MVC标准的&#xff0c;JMVC支持多视点编码、合流、多视点解码操作。可以利用JMVC生成h264 mvc码流和解码。 JMVC的下载地址是&#xff1a;jvet / JMVC GitLabH.264/AVC multi-view coding (MVC) extension JMVC reference softwarehttps://vcgit.hh…

LabVIEW软件侵权分析与应对

问&#xff1a;如果涉及到LabVIEW软件的仿制或模仿&#xff0c;特别是在功能、界面等方面&#xff0c;如何判断是否构成侵权&#xff1f;该如何应对&#xff1f; 答&#xff1a;LabVIEW软件的侵权问题&#xff0c;尤其是在涉及到仿制或模仿其功能、界面、设计等方面&#xff0…

条款07:为多态基类声明virtual析构函数

1.工厂方法举例&#xff1a;多态基类析构函数不声明为virtual会发生什么 #include <iostream> using namespace std;class Base { public:~Base(){} };class Box :public Base { public:const static int s_i 0; };class Box1 :public Base { public:const static int …

【C++】字符数|组输入与处理全解析

博客主页&#xff1a; [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: C 文章目录 &#x1f4af;前言&#x1f4af;1. 基础方法&#xff1a;scanf 和 cin 的使用1.1 使用 scanf 实现简单字符串输入示例代码行为分析示例输入与输出优缺点改进建议 1.2 使用 cin 实现字符串输入示例代码行为…

Python爬虫教程——7个爬虫小案例(附源码)_爬虫实例

本文介绍了7个Python爬虫小案例&#xff0c;包括爬取豆瓣电影Top250、猫眼电影Top100、全国高校名单、中国天气网、当当网图书、糗事百科段子和新浪微博信息&#xff0c;帮助读者理解并实践Python爬虫基础知识。 包含编程资料、学习路线图、源代码、软件安装包等&#xff01;【…

apex安装

安装过程复杂曲折&#xff0c;网上说的很多办法&#xff0c;貌似成功了&#xff0c;实际还是没起作用。 先说成功过程&#xff0c;执行下面命令&#xff0c;安装成功&#xff08;当然&#xff0c;前提是你要先配置好编译环境&#xff09;&#xff1a; &#xff08;我的环境&a…

谷粒商城-高级篇-Sentinel-分布式系统的流量防卫兵

1、基本概念 1.1、熔断降级限流 1、什么是熔断 A 服务调用 B 服务的某个功能&#xff0c;由于网络不稳定问题&#xff0c;或者 B 服务卡机&#xff0c;导致功能时间超长。如果这样子的次数太多。我们就可以直接将 B 断路了&#xff08; A 不再请求 B 接口&#xff09;&#…

Django的runserver

当年执行 python manage runserver命令时 1. 先执行 runserver 中的 handle方法 2. 执行 self.run()方法 3. 执行 self.inner_run() 3.1 inner_run 下 run方法的封装 3.1.1 接着看 handle 怎么来的 封装了一个方法 接着找返回函数 3.1.2在 basehttp 下 3.1.3 get_wsgi_appl…

MySQL 如何赶上 PostgreSQL 的势头?

原文地址 我与 MySQL 社区的前辈交谈时&#xff0c;经常遇到这个问题&#xff1a;「为什么 MySQL 这么棒&#xff0c;而且&#xff08;至少根据 DB-Engines 的计算&#xff09;仍然比 PostgreSQL 更流行&#xff1b;但它的地位在下降&#xff0c;PostgreSQL 却势不可挡地越来越…

微信小程序中的 storage(本地存储)和内存是两个完全不同的存储区域

这是一个非常关键且容易混淆的概念 既然 this.globalData.appId appId 是将 appId 存储在内存中&#xff0c;为什么微信小程序中的 wx.getStorage 和 wx.setStorage&#xff08;本地存储&#xff09;中没有 appId&#xff0c;并且您提出了一个非常重要的疑问&#xff1a;stor…

c/c++ 里的进程间通信 , 管道 pipe 编程举例

&#xff08;1&#xff09;以下是一个网上的使用 pipe 编程的范例&#xff1a; #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <string.h> #include <sys/types.h> #include <sys/wait.h>int main() {int pipefd…

java项目之网上租贸系统源码(springboot+mysql+vue)

风定落花生&#xff0c;歌声逐流水&#xff0c;大家好我是风歌&#xff0c;混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的网上租贸系统。项目源码以及部署相关请联系风歌&#xff0c;文末附上联系信息 。 项目简介&#xff1a; 基于Spring Boot的网上租贸…

数据库回滚:大祸临头时

原文地址 什么是数据库回滚&#xff1f; 数据库技术中&#xff0c;回滚是通过撤销对数据库所做的一项或多项更改&#xff0c;将数据库返回到先前状态的操作。它是维护数据完整性和从错误中恢复的重要机制。 什么时候需要数据库回滚&#xff1f; 数据库回滚在以下几个场景中很…