玩深度学习,个人觉得基于anaconda的python适合开发与测试,C++适合实际的工程部署!而pytorch官方有编译好的libtorch,特别方便,适合于我这样的伸手党和手残党(win10下编译tensorflow编译了好久都没通过,好忧伤!)好了,话不多说进入正题!

工程环境:

1.win10;

2.anaconda+pytorch1.0;

3.vs2015

4.Cmake

一、下载libtorch

进入pytorch官方网址https://pytorch.org/get-started/locally/,个人使用的是cpu版本,选择如下图所示:

下载好了放在无中文路径的文件夹下(个人使用的是release版本)

二、Cmake配置

首先创建一个文件夹,存放主程序example.cpp还有CMakeLists.txt,然后再创建一个build的空文件夹,之后编译好的文件都存放在build文件夹里头(照着教程来的,但是发现build文件夹内实际没有工程文件,反而是根目录文件夹内是编译好的文件,即CMakeLists.txt所在文件夹,有知道的大佬烦请告知下原因)。cmake编译文件夹目录如下所示:

其中CMakeLists.txt内容如下所示:

#cmake的最低版本要求
cmake_minimum_required(VERSION 3.0 FATAL_ERROR)
#example为创建的工程名字
project(example)
#添加的pytorch的附加库
find_package(Torch REQUIRED)
#编译的相应cpp文件
add_executable(example-app example-app.cpp)
target_link_libraries(example-app “${TORCH_LIBRARIES}”)
set_property(TARGET example-app PROPERTY CXX_STANDARD 11)

其中example.cpp内容如下所示(仅作调用libtorch并生成随机tensor):

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

三、Cmake编译

camke编译比较简单,在根目录文件夹下打开power shell(即CMakeLists.txt所在文件夹),输入

cmake -DCMAKE_PREFIX_PATH=E:\lib\pytorch\libtorch 

DCMAKE_PREFIX_PATH=libtorch绝对路径,就是刚才下载的libtorch文件解压后的根目录。

编译成功后会出现以下结果(并且刚才相应的文件会出现VS工程项目):

四、结果运行

用vs2015打开如下文件

1.打开工程文件后,修改配置管理器为X64,以及将example项目设置为启动项目(如果不会,请自行百度,这是vs的基本操作)。2.打开example项目的属性->链接器->输入->附加依赖项,删除其中引号内的所有内容,否则会出现找不到torch.lib的错误提示;

3.接上述步骤,->命令行->其他选项,将其中的X86更改为X64;

运行example项目会提示找不到相应的lib文件,此时继续下面步骤,

4.将之前解压的libtorch文件(\path\libtorch\lib)下的lib文件夹内的所有内容(内容如下图所示)拷贝至\path\example-app\x64\Release文件夹下,

此时项目运行成功,结果如下图所示:

注意:

1.CamkeLists.txt,主要为设置相应的项目属性以及需要编译的附加库,但是不明白为什么还需要将相应的libtorch库文件拷贝至当前项目环境下,难道是因为没有在环境变量里设置libtorch的变量路径吗?下次有空再测试;

2.libtorch解压路径不要太深,貌似是因为Cmake路径不能超过一千个字符,所以路径尽量浅一点,还有就是作为码农,不要有中文路径,毕竟外国人基本不用中文,在码农世界中文是个蛋疼的玩意,会导致很多莫名其妙的错误,避免坑就戒掉中文路径吧!

3.Camke是个好东西,可以多学习学习,下面有相应的CamkeLists.txt的参考博客,觉得都是大牛啊!

参考文献:

1.https://blog.csdn.net/adyf3/article/details/85003893

2.https://blog.csdn.net/qq_37761077/article/details/88750711

3.https://blog.csdn.net/linxigjs/article/details/79864033

4.https://pytorch.org/cppdocs/installing.html

深度学习之pytorch(三) C++调用相关推荐

  1. [深度学习] 分布式Pytorch介绍(三)

    [深度学习] 分布式模式介绍(一) [深度学习] 分布式Tensorflow介绍(二) [深度学习] 分布式Pytorch介绍(三) [深度学习] 分布式Horovod介绍(四)  一  Pytorc ...

  2. (d2l-ai/d2l-zh)《动手学深度学习》pytorch 笔记(2)前言(介绍各种机器学习问题)以及数据操作预备知识Ⅰ

    开源项目地址:d2l-ai/d2l-zh 教材官网:https://zh.d2l.ai/ 书介绍:https://zh-v2.d2l.ai/ 笔记基于2021年7月26日发布的版本,书及代码下载地址在 ...

  3. (翻译)60分钟入门深度学习工具-PyTorch

    60分钟入门深度学习工具-PyTorch 作者:Soumith Chintala 原文翻译自: https://pytorch.org/tutorials/beginner/deep_learning ...

  4. 一篇文章入门深度学习框架PyTorch

    一篇文章入门深度学习框架PyTorch 1 Tensor(张量) 2 Variable(变量) 3 Dataset(数据集) 4 nn.Module(模组) 5 torch.optim(优化) 一阶优 ...

  5. 深度学习二(Pytorch物体检测实战)

    深度学习二(Pytorch物体检测实战) 文章目录 深度学习二(Pytorch物体检测实战) 1.PyTorch基础 1.1.基本数据结构:Tensor 1.1.1.Tensor数据类型 1.1.2. ...

  6. 07组第二次作业 深度学习和pytorch基础

    07组第二次作业 深度学习和pytorch基础 1.视频学习 20020007118 张泽峰 1.1绪论 人工智能的前景比较广阔,人才缺口比较大. 专家系统 早期的人工智能依赖于专家系统 通过一些专家 ...

  7. OUC暑期培训(深度学习)——第一周学习记录:深度学习和pytorch基础

    第一周学习:深度学习和pytorch基础 目录 第一周学习:深度学习和pytorch基础 Part 1:视频学习: 1. 绪论: 2. 深度学习概述: Part 2:代码练习: 1. pytorch基 ...

  8. 网易云课程:深度学习与PyTorch入门实战

    网易云课程:深度学习与PyTorch入门实战 01 深度学习初见 1.1 深度学习框架简介 1.2 pytorch功能演示 2开发环境安装 3回归问题 3.1简单的回归问题(梯度下降算法) 3.3回归 ...

  9. (d2l-ai/d2l-zh)《动手学深度学习》pytorch 笔记(4)线性神经网络(暂停)

    开源项目地址:d2l-ai/d2l-zh 教材官网:https://zh.d2l.ai/ 书介绍:https://zh-v2.d2l.ai/ 笔记基于2021年7月26日发布的版本,书及代码下载地址在 ...

最新文章

  1. 主键约束、外键约束、唯一约束、检查约束、默认值约束实例
  2. github/gitlab同时管理多个ssh key
  3. 图论基础知识--最小生成树算法kruskal(克鲁斯克尔)和普里姆算法(Prim算法);最短路径算法Dijkstra(迪杰斯特拉)和Floyd(弗洛伊德)
  4. iOS 11 下 UICollectionView 出现滚动条被 HeaderView 遮挡的问题
  5. Android 如何自定义EditText 下划线?
  6. 超全面整理,Selenium 八大元素定位方式,(建议收藏反复使用)
  7. CSDN博客代码高亮显示
  8. android倒影效果,Android 设置图片倒影效果
  9. Hbase java API操作(模板代码)
  10. 探访广东第二鬼城,一座长在石油上的城市
  11. Android 手游聚合SDK那些事
  12. the password has expired解决方法
  13. vue页面导出pdf文档并上传pdf格式给后台
  14. 批量导出导入数据及附件文件ZIP包
  15. 常用博客SEO优化技巧
  16. 解码2022中国网安强星丨从“移动应用”到“万物互联”,梆梆安全做物联网时代的安全“守门人”
  17. 遗传算法配送路径优化java_基于遗传算法的配送中心路径优化问题分析
  18. 安卓浏览器中video组件会显示播放按钮
  19. 博客系统—头像预览功能实现
  20. 华为海思麒麟搭载鸿蒙系统,麒麟芯片只供华为使用 华为P40将搭载鸿蒙系统

热门文章

  1. 这几天有django和python做了一个多用户博客系统(可选择模板) 没完成,先分享下...
  2. [scrum]2011/9/24-----第四天
  3. Flask系列06--(中间件)Flask的特殊装饰器 before_request,after_request, errorhandler
  4. signal(SIGHUP, SIG_IGN);
  5. 不同浏览器css引入外部字体的方式
  6. JavaScript——变量与基本数据类型
  7. Qt的元对象(Meta-Object)系统简介(转)
  8. 提里奥·弗丁(魔兽世界里的NPC)
  9. Vue 下拉刷新及无限加载组件 - 有你便是晴天 - 博客园
  10. springboot---request 中Parameter,Attribute区别