如何在 windows 配置 libtorch c++ 前端库?

下载 pytorch 已经编译好的库:

此库不带 gpu,主要方便演示。支持 win7 win10 系统。

下载地址:https://download.pytorch.org/libtorch/cpu/libtorch-win-shared-with-deps-latest.zip


1. cmake 配置

1.1 新建 CMakeLists.txt 并添加以下内容:
# 设置 cmake 版本限制
cmake_minimum_required(VERSION 3.0 FATAL_ERROR) # 项目名称
project(libtorch-app) # 设置 libtorch-win-shared-with-deps-latest 目录,主要让 find_package 可以找到 Torch 的 TorchConfig.cmake 配置文件以及其他相关 Config.cmake 配置文件 set(CMAKE_PREFIX_PATH "./libtorch-win-shared-with-deps-latest") find_package(Torch REQUIRED) add_executable(libtorch-app main.cpp)
target_link_libraries(libtorch-app "${TORCH_LIBRARIES}")
set_property(TARGET libtorch-app PROPERTY CXX_STANDARD 11)
1.2 在 CMakeLists.txt 同级目录新建一个 main.cpp 文件,添加以下内容:
#include <torch/torch.h>
#include <iostream>
int main()
{
torch::Tensor tensor = torch::rand({ 9,9 });
std::cout << tensor << std::endl;
return 0;
}
1.3 然后在 CMakeLists.txt 同级目录下打开一个命令行(按住 Shift + 鼠标右键即可)输入以下命令:

cmake -DCMAKE_BUILD_TYPE=Release -G "Visual Studio 14 Win64"

执行完以上命令后生成 libtorch-app.sln 解决方案文件,打开编译即可。


2. 手动配置(仅适用于CPU,GPU需要自行另外添加相关依赖)

新建一个属性页并添加当当前配置文件中

2.1. 在 C/C++->常规->附加包含目录里面添加以下内容并开启多处理器编译:
$(SolutionDir)3rdparty\libtorch-win-shared-with-deps-latest\include\torch\csrc\api\include
$(SolutionDir)3rdparty\libtorch-win-shared-with-deps-latest\include
2.2. 在 连接器->输入->附加依赖项里面添加以下内容:
$(SolutionDir)3rdparty\libtorch-win-shared-with-deps-latest\lib\torch.lib
$(SolutionDir)3rdparty\libtorch-win-shared-with-deps-latest\lib\caffe2.lib
$(SolutionDir)3rdparty\libtorch-win-shared-with-deps-latest\lib\c10.lib
2.3. 在 调试->环境 里面添加环境变量

path=%path%;$(SolutionDir)3rdparty\libtorch-win-shared-with-deps-latest\lib

2.4 新建一个 main.cpp 文件,添加以下内容并使用 x64 模式编译即可:
#include <torch/torch.h>
#include <iostream>
int main()
{
torch::Tensor tensor = torch::rand({ 9,9 });
std::cout << tensor << std::endl;
return 0;
}

输出一个随机数值9x9矩阵:

0.2407  0.9294  0.5167  0.3774  0.9841  0.6530  0.9825  0.5814  0.4903
0.8882 0.5111 0.7414 0.7563 0.1666 0.2542 0.2624 0.0668 0.4328
0.0481 0.4880 0.6299 0.5140 0.0379 0.9187 0.3033 0.1510 0.6705
0.1983 0.6113 0.2893 0.0700 0.8585 0.3588 0.3891 0.0551 0.0458
0.7738 0.0797 0.0611 0.1781 0.3898 0.0238 0.0361 0.3905 0.2005
0.5774 0.5769 0.6275 0.3511 0.9609 0.3415 0.7188 0.5650 0.5670
0.0828 0.2139 0.5793 0.4089 0.5725 0.3938 0.8250 0.2695 0.6470
0.4106 0.3609 0.9982 0.8789 0.0134 0.8454 0.3880 0.0937 0.9598
0.1523 0.9423 0.2989 0.6404 0.0997 0.2817 0.0706 0.1867 0.1980
Variable[CPUFloatType]{9,9} ]
``

如何在 windows 配置 libtorch c++ 前端库?的更多相关文章

  1. 如何在WINDOWS下编译BOOST C++库 .

    如何在WINDOWS下编译BOOST C++库 cheungmine 2008-6-25   写出来,怕自己以后忘记了,也为初学者参考.使用VC8.0和boost1.35.0.   1)下载boost ...

  2. VS2013配置Caffe卷积神经网络工具(64位Windows 7)——准备依赖库

    VS2013配置Caffe卷积神经网络工具(64位Windows 7)--准备依赖库 2014年4月的时候自己在公司就将Caffe移植到Windows系统了,今年自己换了台电脑,想在家里也随便跑跑,本 ...

  3. 如何在Windows平台下安装配置Memcached

    Memcached是一个自由开源的,高性能,分布式内存对象缓存系统. Memcached是以LiveJournal旗下Danga Interactive公司的Brad Fitzpatric为首开发的一 ...

  4. windows下Anaconda3配置TensorFlow深度学习库

    Anaconda3(python3.6)安装tensorflow Anaconda3中安装tensorflow3是非常简单的,仅需通过 pip install tensorflow 测试代码: imp ...

  5. 如何在windows server 2008上配置NLB群集

    参考:http://zlwdouhao.blog.51cto.com/731028/781828 前些天写了一篇关于NLB群集模式多播和单播的简单介绍.那么下面我们一起来探讨一下,如何在windows ...

  6. 4.1. 如何在Windows环境下开发Python

    4.1. 如何在Windows环境下开发Python 4.1. 如何在Windows环境下开发Python 4.1.1. Python的最原始的开发方式是什么样的 4.1.1.1. 找个文本编辑器,新 ...

  7. 如何在Windows平台使用VS搭建C++/Lua的开发环境

    转自:http://ju.outofmemory.cn/entry/95358 本文主要介绍如何在Windows平台利用VS搭建C++/Lua开发环境.这里的“C++/Lua开发环境”主要指的是C++ ...

  8. 如何在Windows Server 2008 R2没有磁盘清理工具的情况下使用系统提供的磁盘清理工具

    今天,刚好碰到服务器C盘空间满的情况,首先处理了临时文件和有关的日志文件后空间还是不够用,我知道清理C盘的方法有很多,但今天只分享一下如何在Windows Server 2008 R2没有磁盘清理工具 ...

  9. 配置自己的OpenGL库,glew、freeglut库编译,库冲突解决(附OpenGL Demo程序)

    平台:Windows7,Visual C++ 2010 1. 引言 实验室的一个项目,用到OpenGL进行实时绘制,还用到一些其他的库,一个困扰我很久的问题就是编译时遇到的各种符号未定义,符号重定义之 ...

随机推荐

  1. LoadRunner “add measurements”(添加度量)菜单问题

    HP LoadRunner 11版本  配置

  2. Redis JAVA客户端 Jedis常用方法

    Jedis 是 Redis 官方首选的 Java 客户端开发包 (redis的java版本的客户端实现) #MAVEN配置 <dependency> <groupId>redi ...

  3. 实战c++中的vector系列--知道emplace_back为何优于push_back吗?

    上一篇博客说道vector中放入struct.我们先构造一个struct对象.再push_back. 那段代码中,之所以不能使用emplace_back,就是由于我们定义的struct没有显示的构造函 ...

  4. addLoadEvent

    function addLoadEvent(func){ var oldOnload = window.onload; if(typeof(window.onload) != 'function'){ ...

  5. csdn 模式识别

    http://blog.csdn.net/liyuefeilong/article/details/45217335 模式识别 http://ceit.ucas.ac.cn/index.php?id= ...

  6. 【BZOJ】1616: [Usaco2008 Mar]Cow Travelling游荡的奶牛(dp/-bfs)

    http://www.lydsy.com/JudgeOnline/problem.php?id=1616 我觉得bfs是可过的,但是交bfs上去是wa? 然后没办法看dp,原来这bfs能和dp联系在一 ...

  7. MySQL单列索引和组合索引的选择效率与explain分析

    一.先阐述下单列索引和组合索引的概念: 单列索引:即一个索引只包含单个列,一个表可以有多个单列索引,但这不是组合索引. 组合索引:即一个索包含多个列. 如果我们的查询where条件只有一个,我们完全可 ...

  8. 灵活的javaScript

    通常我们不像下面这样声明函数,因为会创建很多全局变量. function checkName() { // code } function checkEmail() { // code } 所以,我们 ...

  9. Leetcode: Palindrome Partition I II

    题目一, 题目二 思路 1. 第一遍做时就参考别人的, 现在又忘记了 做的时候使用的是二维动态规划, 超时加超内存 2. 只当 string 左部分是回文的时候才有可能减少 cut 3. 一维动规. ...

  10. String、StringBuffer与StringBuilder区别

    1.三者在执行速度方面的比较:StringBuilder >  StringBuffer  >  String 2.String <(StringBuffer,StringBuild ...