当前位置: 首页 > news >正文

环境配置完整指导——Installing C++ Distributions of PyTorch

目录

  • 一、前言
  • 二、动手开始做
    • 1. 安装cuda 11.4
    • 2. 安装visual studio 2019 community
    • 3. 安装libtorch
    • 4. 安装mingw-w64
    • 5. 配置环境变量
    • 6. 打开vscode开始写程序
    • 7. 运行程序
    • 8. 其他报错信息

文章简介:这篇文章用于介绍在windows10 vscode中,跑通如下代码的全部过程:

#include <torch/torch.h>
#include <iostream>int main() {torch::Tensor tensor = torch::rand({2, 3});std::cout << tensor << std::endl;
}

代码来源:https://pytorch.org/cppdocs/installing.html

一、前言

能点进本文的同学们不需要我废话,所以简单讲一下,这是个c++和pytorch的“联动”,如果有同学需要用c++编写torch,就需要配置环境。

配环境是一个麻烦事,本文直接手把手保姆级教学,目标是:让同学们在windows上的vscode中,跑通上面那段代码。

注意:vscode请自行下载配置。

二、动手开始做

1. 安装cuda 11.4

信息提醒:我使用版本11.1会报错:No CUDA toolset found,搜到一些资料建议换成11.4,更换后就没问题了。

安装方法:https://blog.csdn.net/XunCiy/article/details/89070315,但注意其中有一个地方需要不一样:

在这里插入图片描述作者说这个一定不要选,但是这个一定要选!不然会报错。

至此,我们安装好了cuda 11.4,并且安装了对应的cudnn,摆出来我在官网上下载的版本:
https://developer.nvidia.com/rdp/cudnn-archive
在这里插入图片描述

2. 安装visual studio 2019 community

我把我安装的放在这里供大家参考
在这里插入图片描述
在这里插入图片描述
我一共在安装器中勾选了这些内容。当然安装器大家就自己去官网下载,我下载的是Visual Studio 2019 community

3. 安装libtorch

注意我默认同学们已经安装了pytorch,我安装的是gpu版本的1.12.1.

至于libtorch,我选择的是libtorch-win-shared-with-deps-1.12.1+cu116.zip,注意是release版本。下载的地方如下:
https://pytorch.org/get-started/locally/
在这里插入图片描述
注意上图的Release version,可以将链接中的1.13.1改成1.12.1,cu116保持不变就能够和我的版本保持一致了。

安装好之后,我放在了如下路径:
在这里插入图片描述

4. 安装mingw-w64

这个是和C++有关的东西,下载地址:https://sourceforge.net/projects/mingw-w64/files/mingw-w64/mingw-w64-release/,我下载的是这个:
在这里插入图片描述
也可以通过installer安装,但是我安装的时候报错了,所以选择直接将文件下载下来。下好之后解压,我放置的路径如下:
在这里插入图片描述

5. 配置环境变量

我整个过程中频繁修改环境变量的设置,所以已经忘了修改顺序,就直接将最终版本放在这里供大家参考。

windows10 进入环境变量的方法:点击键盘上的开始键——直接输入环境两个字,点击:
在这里插入图片描述
点进去选择环境变量,逐步添加:

第一,在用户变量中添加INCLUDE变量,值为:
在这里插入图片描述
各位根据自己Visual Studio的安装位置和Windows Kits的文件夹位置修改就行了。

第二,在用户变量中添加LIB变量,值为:
在这里插入图片描述
修改方法同上。

第三,在用户变量中Path变量下,添加几条,最终如下:
在这里插入图片描述
这是我全部的path,你需要添加的是上述第2、3、6行。

第四,在系统变量中添加如下变量:
在这里插入图片描述
在这里插入图片描述

这2个和mingw-64有关

第五,我的系统变量中有如下部分,表示cuda安装成功,在安装过程中自动加入的:
在这里插入图片描述
在这里插入图片描述
第六、在系统变量的Path部分,需要有如下内容:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
上面这些就是配置此次环境,我的环境变量中多出来的内容,当然有些是自动生成的。

6. 打开vscode开始写程序

我说一下我的操作顺序,这种打开并构建项目的方式不一定是最优的,仅仅记录一种可行的方式:

第一步,按键盘的开始键
第二步,输入并打开它:
在这里插入图片描述
第三步,在桌面上(或者别的地方)创建一个空文件夹,叫做helloworld2,并在打开的命令行中输入如下内容:
在这里插入图片描述
切换到文件夹下输入code .,然后就能打开vscode

第四步,在vscode下,按ctrl+shift+P,输入并选择cmake: select a kit:
在这里插入图片描述
然后我选择的是下图的第一个(我机子是amd 64位的):
在这里插入图片描述
第五步,按同上的快捷键,这次选择quick start:
在这里插入图片描述
输入helloworld2(文件夹的名字)
在这里插入图片描述
按回车,然后选择executable
在这里插入图片描述
然后就会生成很多东西,包括cmakelist.txt,我们把相关配置写进去,然后build就行了。

第六步,配置cmakelist.txt

cmake_minimum_required(VERSION 3.0.0)
project(helloworld2 VERSION 0.1.0)# 提醒:如果find_package(Torch REQUIRED)语句报错,我在别的操作系统上遭遇了报错,
# 那么就添加下面这句,我的libtorch放在了"/usr/local/libtorch/",所以下面这一行的路径是那样写的
# set(Torch_DIR "/usr/local/libtorch/share/cmake/Torch/")# http://ruiy.leanote.com/post/find_package%E7%9A%84%E4%BD%9C%E7%94%A8
# 这个资料简单讲解了本文件一些语句的运作过程,并且可能讲清楚了${TORCH_LIBRATIES}这些变量是哪来的
find_package(Torch REQUIRED)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${TORCH_CXX_FLAGS}")include(CTest)
enable_testing()add_executable(helloworld2 main.cpp)
target_link_libraries(helloworld2 "${TORCH_LIBRARIES}")
set_property(TARGET helloworld2 PROPERTY CXX_STANDARD 14)set(CPACK_PROJECT_NAME ${PROJECT_NAME})
set(CPACK_PROJECT_VERSION ${PROJECT_VERSION})
include(CPack)# The following code block is suggested to be used on Windows.
# According to https://github.com/pytorch/pytorch/issues/25457,
# the DLLs need to be copied to avoid memory errors.
if (MSVC)file(GLOB TORCH_DLLS "${TORCH_INSTALL_PREFIX}/lib/*.dll")add_custom_command(TARGET helloworld2POST_BUILDCOMMAND ${CMAKE_COMMAND} -E copy_if_different${TORCH_DLLS}$<TARGET_FILE_DIR:helloworld2>)
endif (MSVC)

我再放一个官方的版本供参考:
https://pytorch.org/cppdocs/installing.html

cmake_minimum_required(VERSION 3.0 FATAL_ERROR)
project(example-app)find_package(Torch REQUIRED)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${TORCH_CXX_FLAGS}")add_executable(example-app example-app.cpp)
target_link_libraries(example-app "${TORCH_LIBRARIES}")
set_property(TARGET example-app PROPERTY CXX_STANDARD 14)# The following code block is suggested to be used on Windows.
# According to https://github.com/pytorch/pytorch/issues/25457,
# the DLLs need to be copied to avoid memory errors.
if (MSVC)file(GLOB TORCH_DLLS "${TORCH_INSTALL_PREFIX}/lib/*.dll")add_custom_command(TARGET example-appPOST_BUILDCOMMAND ${CMAKE_COMMAND} -E copy_if_different${TORCH_DLLS}$<TARGET_FILE_DIR:example-app>)
endif (MSVC)

第七步,写main.cpp

#include <iostream>
#include <torch/torch.h>int main(int, char**) {std::cout << "Hello, world!\n";torch::Tensor tensor = torch::rand({2, 3});std::cout << tensor << std::endl;
}

7. 运行程序

看vscode下面:
在这里插入图片描述
先按一下Build,然后再按一下run(上图瓢虫右边的三角)。

然后输出结果:
在这里插入图片描述

至此,配环境的任务就结束了。

8. 其他报错信息

  • 上面给的例子是#include <torch/torch.h>,如果要#include <torch/extension.h>,就会报错:找不到Python.h,那么这个时候就需要用include_directores()语句添加Python.h文件所在的路径,一般是"python安装路径/include"。我写的是"/Library/Frameworks/Python.framework/Versions/3.7/include/python3.7m",因为我的Python.h在这个路径下,然后重新build就不报错了。
http://www.lryc.cn/news/8120.html

相关文章:

  • 深度学习——自注意力机制和位置编码(笔记)
  • 内网渗透(三十)之横向移动篇-利用远控工具向日葵横向移动
  • 自动化测试中,该如何高效管理测试数据?
  • Qt中项目A调用另一个项目B的方法汇总
  • 【项目精选】基于Javaee的影视创作论坛的设计与实现(视频+论文+源码)
  • 深入【虚拟列表】动态高度、缓冲、异步加载... Vue实现
  • Windows 11 + WSL(ubuntu 20.04) + CLion(2022.3) 编译OpenJDK12
  • Freemarker 语法精粹
  • 使用Benchto框架对Trino进行SQL性能对比测试
  • Redis之哨兵模式
  • Selenium自动化测试Python二:WebDriver基础
  • 蓝桥杯模块学习17——AT24C02存储器(深夜学习——单片机)
  • netty
  • Django项目部署-uWSGI
  • jhipster自动生成java代码的方法
  • LeetCode 82. 删除排序链表中的重复元素 II
  • tensorflow gpu环境安装
  • 如何在现实场景中随心放置AR虚拟对象?
  • 操作系统-处理机调度
  • 手机截图如何提取文字?
  • vue中复制内容
  • MySQL CAST()函数用法
  • 【测试工程师面试】详细记录 自己的一次面试
  • Elasticsearch 安装(二)
  • Java基础:异常与错误(ExceptionError)
  • VAmPI:一个包含了OWASP Top10漏洞的REST API安全学习平台
  • springboot(6)之前端传递参数的方式 普通 集合 数组
  • redis分布式锁的演变过程
  • leaflet 修改popup的样式,个性化弹窗(069)
  • 注解ConfigurationProperties、EnableConfigurationProperties的用法