用于机器学习的 C++ 独立库
github地址
https://github.com/flashlight/flashlight
Flashlight是一个由Facebook AI Research开发的完全用C++编写的机器学习库。
完全内部可修改性,包括用于张量计算的内部 API。
占用空间小,核心速度低于 10 MB,C++ 代码数为 20k 行。
高性能默认设置,通过现代 C++ 通过 ArrayFire 进行即时内核编译 张量库。
强调效率和规模。
C++ 的原生支持和简单的可扩展性使 Flashlight 成为一个强大的研究框架,可以快速迭代新的实验设置和算法,几乎没有任何意见,而且不会牺牲性能。在单个存储库中,Flashlight 提供应用程序用于跨多个领域的研究:
项目布局
手电筒分为几个部分:
flashlight/lib
包含用于音频处理等的内核和独立实用程序。
flashlight/fl
是核心张量接口和神经网络库,默认使用 ArrayFire 张量库。
flashlight/pkg
是构建在核心上的语音、视觉和文本的域包。
flashlight/app
是核心库在跨领域机器学习中的应用。
快速开始
首先,构建并安装 Flashlight 并将其链接到您自己的项目< a i=4>.
Sequential
形成 Flashlight 序列Module
用于链接计算。
实现一个简单的卷积网络很容易。请参阅MNIST 示例,获取包含训练循环和数据集抽象的完整教程。
Variable
是一种基于磁带的抽象,它包装了 Flashlight 张量。基于磁带的Flashlight 中的自动微分很简单,并且按照您的预期工作。
自动评分示例搭建和安装
安装vcpkg
| 使用 Docker | 来源 | 来自来源vcpkg
| 使用 Flashlight 构建您的项目
要求
编译至少需要:
如果从源代码构建完整依赖项列表以了解更多详细信息=4>.
构建/安装 Python 绑定的说明可以在此处找到。

它旨在提供一种简单、高效的方式来构建和训练各种机器学习模型,包括深度学习、自然语言处理、计算机视觉等。Flashlight的设计目标是能够在各种硬件平台上以最优化方式运行,包括CPU、GPU和TPU等。
Flashlight的核心特性包括:
1. 灵活性:Flashlight提供了丰富的API,可以轻松地构建和自定义各种机器学习模型。
2. 高效性:Flashlight的底层实现使用了C++11/14/17等最新特性,以及各种并行计算技术,能够在各种硬件平台上以最优化方式运行。
3. 跨平台:Flashlight可以在各种操作系统上运行,包括Linux、Windows和macOS等。
4. 社区支持:Flashlight有一个活跃的社区,提供了丰富的文档和教程,以及各种示例代码,可以帮助用户快速上手。
Flashlight 最容易与 CMake 关联。Flashlight 在安装后导出以下 CMake 目标:
flashlight::flashlight
— 包含手电筒库以及手电筒核心 autograd 和神经网络库。
flashlight::fl_pkg_runtime
— 包含手电筒核心以及用于培训的常用实用程序(日志记录/标志/分布式实用程序)。
flashlight::fl_pkg_vision
— 包含手电筒核心以及视觉管道的常用实用程序。
flashlight::fl_pkg_text
— 包含手电筒核心以及处理文本数据的常用实用程序。
flashlight::fl_pkg_speech
— 包含手电筒核心以及处理语音数据的常用实用程序。
flashlight::fl_pkg_halide
— 包含手电筒核心和扩展件,可轻松与卤化物连接。
给定一个简单的project.cpp
文件,其中包含并链接到 Flashlight:
#include <iostream>
#include <flashlight/fl/flashlight.h>
int main() {
fl::init();
fl::Variable v(fl::full({1}, 1.), true);
auto result = v + 10;
std::cout << "Tensor value is " << result.tensor() << std::endl; // 11.000
return 0;
}
以下 CMake 配置链接 Flashlight 和集包含目录:
cmake_minimum_required(VERSION 3.10)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
add_executable(myProject project.cpp)
find_package(flashlight CONFIG REQUIRED)
target_link_libraries(myProject PRIVATE flashlight::flashlight)
带有vcpkg
安装 Flashlight
如果您使用 vcpkg
安装了 Flashlight,则可以通过运行以下命令构建上述 myProject
的 CMake 配置:
cd project && mkdir build && cd build
cmake .. \
-DCMAKE_TOOLCHAIN_FILE=[path to vcpkg clone]/scripts/buildsystems/vcpkg.cmake \
-DCMAKE_BUILD_TYPE=Release
make -j$(nproc)
使用源头 Flashlight 安装
如果使用 Flashlight 的源安装,CMake 将自动找到 Flashlight:
cd project && mkdir build && cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
make -j$(nproc)
如果使用 CMAKE_INSTALL_PREFIX
将 Flashlight 安装在自定义位置,请将 -Dflashlight_DIR=[install prefix]/share/flashlight/cmake
作为参数传递给 cmake
命令可以帮助CMake找到Flashlight。
使用 Docker 构建并运行 Flashlight
Flashlight 及其依赖项也可以使用提供的 Dockerfile 进行构建;请参阅随附的 Docker 文档了解更多信息。
贡献和联系
总的来说,Flashlight是一个功能强大、灵活、高效的机器学习库,适用于各种机器学习任务和硬件平台。
用于机器学习的 C++ 独立库
github地址
https://github.com/flashlight/flashlight