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

一文详解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.lryc.cn/news/510897.html

相关文章:

  • 【LeetCode 面试经典150题】详细题解之哈希表篇
  • linux socket编程之udp_dict_serve服务端--引入配置文件
  • selenium学习笔记(二)
  • 宏集eX710物联网工控屏在石油开采机械中的应用与优势
  • linux——vi命令常用操作
  • vscode添加全局宏定义
  • 重装荣耀X14笔记本电脑踩坑记
  • Android `android.graphics.drawable` 包深度解析:架构与设计模式
  • Kotlin语言的软件工程
  • 面试经典 150 题——数组/字符串(一)
  • 使用亚马逊针对 PyTorch 和 MinIO 的 S3 连接器实现可迭代式数据集
  • TestMAX/DFT Compiler:时序单元的类型、连接顺序和后DFT优化
  • CAN201 Introduction to Networking(计算机网络)Pt.3 网络层
  • App Factory:简化和加速私人应用开发
  • PHP语言laravel框架中基于Redis的异步队列使用实践与原理
  • 全面Kafka监控方案:从配置到指标
  • kipotix4靶机实战
  • 我的秋招总结
  • 广义线性模型(GLM)全面解析
  • C++ OCR 文字识别
  • PHP实现登录和注册(附源码)
  • AEO海关认证的注意事项
  • ElasticSearch 分布式部署
  • Vue中动态样式绑定+CSS变量实现切换明暗主题功能——从入门到进阶
  • vue3 video 播放rtmp视频?(360浏览器支持)
  • RK356x bsp 7 - PCF8563 RTC调试记录
  • 定义Shape:打造属于你的独特图形
  • JavaWeb(一) | 基本概念(web服务器、Tomcat、HTTP、Maven)、Servlet 简介
  • python学opencv|读取图像(二十一)使用cv2.circle()绘制圆形进阶
  • CLIP:连接文本与图像, 从自然语言监督中学习可迁移的视觉模型