一文详解MacOS+CLion——构建libtorch机器学习开发环境
对于希望在本地环境中进行深度学习开发的开发者来说,配置合适的工具链是至关重要的一步。本文旨在帮助您在 macOS 操作系统上,利用 CLion IDE 和 PyTorch 的 C++依赖库——libtorch,快速搭建起一个高效的开发环境。这里我们将一步步地讲解如何下载必要的库、设置集成开发环境(IDE),以及编写和运行简单的代码示例来验证配置是否成功。
一、下载libtorch
首先,请访问 PyTorch官方网站,根据您的 Mac 系统参数选择并下载适合的PyTorch 依赖包。在页面最下方,您可以找到下载链接。对于本文,我选择了适用于 macOS 的默认版本 libtorch
。
PyTorch官方下载地址:
https://pytorch.org/get-started/locally/
下载完成后,请解压libtorch依赖库到一个易于管理的位置:这里我解压到了Android SDK的同级存储目录,朋友们可以根据自己喜好选择一个存储目录。
最后,获取当前libtorch的路径,请注意保存改路径,这里我的存储路径为:/Users/xiaxueliang/Library/Android/libtorch
二、配置CLion项目
在成功下载并解压了 libtorch 库之后,下一步就是将它集成到我们的开发环境中。CLion 是由 JetBrains 开发的一款强大的 C++ 集成开发环境(IDE),它提供了智能代码补全、静态代码分析和便捷的调试工具等功能,非常适合用于构建复杂的 C++ 项目。本节介绍如何创建一个新的 CLion 项目,并正确配置它以使用 libtorch 库。我们将逐步讲解如何设置项目的构建系统,确保所有必要的库都能被正确链接,从而让您的项目可以顺利编译和运行。
2.1 创建CLion项目
启动 CLion 并创建一个新的 C++ 项目。您可以自由命名项目,这里我定义的名称为CLion_libtorch_demo
。
2.2 修改 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}")
需要注意的是:
/Users/xiaxueliang/Library/Android/libtorch
是我们刚才解压的libtorch
的路径。CLion_libtorch_demo
是我们的项目名称。
CLion会自动重新加载链接相关配置:
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项目,以消除依赖报红的问题:
2.5 运行
完成上述步骤后,点击运行按钮即可编译并执行程序。如果一切顺利,您应该能在控制台上看到两个随机生成张量相加的结果。
通过以上步骤,您现在已经在 macOS 上成功地配置了一个基于 CLion 和 libtorch 的开发环境。希望这篇文章能够帮助您顺利开始深度学习之旅。