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

一文详解MacOS+CLion——构建libtorch机器学习开发环境

头图
对于希望在本地环境中进行深度学习开发的开发者来说,配置合适的工具链是至关重要的一步。本文旨在帮助您在 macOS 操作系统上,利用 CLion IDE 和 PyTorch 的 C++依赖库——libtorch,快速搭建起一个高效的开发环境。这里我们将一步步地讲解如何下载必要的库、设置集成开发环境(IDE),以及编写和运行简单的代码示例来验证配置是否成功。

一、下载libtorch

首先,请访问 PyTorch官方网站,根据您的 Mac 系统参数选择并下载适合的PyTorch 依赖包。在页面最下方,您可以找到下载链接。对于本文,我选择了适用于 macOS 的默认版本 libtorch

PyTorch官方下载地址:
https://pytorch.org/get-started/locally/

PyTorch官方下载依赖库

下载完成后,请解压libtorch依赖库到一个易于管理的位置:这里我解压到了Android SDK的同级存储目录,朋友们可以根据自己喜好选择一个存储目录。

解压libtorch依赖库

最后,获取当前libtorch的路径,请注意保存改路径,这里我的存储路径为:/Users/xiaxueliang/Library/Android/libtorch

二、配置CLion项目

在成功下载并解压了 libtorch 库之后,下一步就是将它集成到我们的开发环境中。CLion 是由 JetBrains 开发的一款强大的 C++ 集成开发环境(IDE),它提供了智能代码补全、静态代码分析和便捷的调试工具等功能,非常适合用于构建复杂的 C++ 项目。本节介绍如何创建一个新的 CLion 项目,并正确配置它以使用 libtorch 库。我们将逐步讲解如何设置项目的构建系统,确保所有必要的库都能被正确链接,从而让您的项目可以顺利编译和运行。

2.1 创建CLion项目

启动 CLion 并创建一个新的 C++ 项目。您可以自由命名项目,这里我定义的名称为CLion_libtorch_demo

创建CLion_libtorch_demo项目

2.2 修改 CMakeLists.txt 文件

打开项目的 CMakeLists.txt 文件,可以以下配置信息:

打开项目对应的CMakeLists.txt文件

2.3 链接libtorch

CMakelists.txt文件,添加以下配置以正确链接 libtorch 库:

# 设置CMAKE_PREFIX_PATH环境变量:指向了libtorch安装目录,用于帮助CMake找到Torch库。  
set(CMAKE_PREFIX_PATH /Users/xiaxueliang/Library/Android/libtorch)  
# 查找Torch软件包,并且是REQUIRED:CMake会使用CMAKE_PREFIX_PATH查找TorchConfig.cmake或torch-config.cmake。  
find_package(Torch REQUIRED)  
# 向编译器添加头文件搜索路径:这里指定了libtorch根目录,使编译器能够在编译过程中找到libtorch的头文件。  
include_directories("/Users/xiaxueliang/Library/Android/libtorch")  
# 继续向编译器添加更多的头文件搜索路径:指向libtorch内部API部分。  
include_directories("/Users/xiaxueliang/Library/Android/libtorch/include/torch/csrc/api/include")  
# 指定链接哪些库:  
target_link_libraries(CLion_libtorch_demo "${TORCH_LIBRARIES}")

需要注意的是:

  1. /Users/xiaxueliang/Library/Android/libtorch是我们刚才解压的libtorch的路径。
  2. CLion_libtorch_demo是我们的项目名称。

CLion会自动重新加载链接相关配置:

链接libtorch

2.4 编写 C++ 源代码

接下来,在 main.cpp 文件中输入如下代码段,用以测试 libtorch 的基本功能:

#include <torch/torch.h>  
#include <iostream>  
#include <torch/csrc/autograd/variable.h>  
  
int main(int args, const char **arg) {  
    // 创建一个形状为{2, 10}的二维张量b,其元素是从标准正态分布(均值为0,方差为1)随机抽取的浮点数。  
    torch::Tensor b = torch::randn({2, 10});  
    // 创建一个形状为{2, 10}的二维张量a,其元素是介于20(包含)和40(不包含)之间的随机整数。  
    torch::Tensor a = torch::randint(20, 40, {2, 10});  
    // 将张量b与张量a相加,并将结果输出到控制台。  
    std::cout << b + a << std::endl;  
    return 0;  
}

添加上述代码后,可通过 File—>Reload CMake Project 重新Reload项目,以消除依赖报红的问题:

Reload CMake Project消除代码报红

2.5 运行

完成上述步骤后,点击运行按钮即可编译并执行程序。如果一切顺利,您应该能在控制台上看到两个随机生成张量相加的结果。

运行结果

通过以上步骤,您现在已经在 macOS 上成功地配置了一个基于 CLion 和 libtorch 的开发环境。希望这篇文章能够帮助您顺利开始深度学习之旅。


http://www.kler.cn/a/455132.html

相关文章:

  • 【信息系统项目管理师】高分论文:论信息系统项目的资源管理(移动警务通系统)
  • 数据库原理及应用(MySQL版-李月军)-习题参考答案
  • Debian安装配置RocketMQ
  • Numpy指南:解锁Python多维数组与矩阵运算(上)
  • No.29 笔记 | CTF 学习干货
  • Semantic Segmentation Editor标注工具
  • ASP.NET WebForms:实现全局异常捕获与处理的最佳实践
  • 系统安全——可信计算
  • nginx服务器实现上传文件功能_使用nginx-upload-module模块
  • 22.跳过报错(最简) C#例子
  • 使用jvisualvm远程连接Linux服务器上java进程
  • 简单讲解关于微信小程序调整 miniprogram 后, tabbar 找不到图片的原因之一
  • 【FastAPI】中间件
  • Ingress-Nginx Annotations 指南:配置要点全方面解读(下)
  • openai chatgpt原理介绍
  • 智能家居实训室中,STC单片机驱动的“互联网+”智能家居系统设计
  • 【C++动态规划 图论】3243. 新增道路查询后的最短距离 I|1567
  • (ICCV-2023)SVDiff:用于扩散微调的紧凑参数空间
  • c++ 命名空间
  • Android:bug记录(简单)
  • 免费线上签字小程序,开启便捷电子签名
  • vue2中使用 v-html 指令渲染的标签, 标签内绑定的 click 事件
  • VMware替换应该关注哪些因素?越来越多的用户倾向于选择脱离硬件绑定的独立虚拟化软件
  • springboot 使用注解设置缓存时效
  • 自然语言处理(NLP)中的事件检测和事件抽取
  • React性能优化:构建更高效的应用