社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  机器学习算法

一个完全用 C++ 编写的快速、灵活的机器学习库

GitHub项目进阶 • 1 年前 • 214 次点击  

用于机器学习的 C++ 独立库

github地址

https://github.com/flashlight/flashlight

Flashlight是一个由Facebook AI Research开发的完全用C++编写的机器学习库。

  • 完全内部可修改性,包括用于张量计算的内部 API

  • 占用空间小,核心速度低于 10 MB,C++ 代码数为 20k 行。

  • 高性能默认设置,通过现代 C++ 通过 ArrayFire 进行即时内核编译 张量库。

  • 强调效率和规模。

C++ 的原生支持和简单的可扩展性使 Flashlight 成为一个强大的研究框架,可以快速迭代新的实验设置和算法,几乎没有任何意见,而且不会牺牲性能。在单个存储库中,Flashlight 提供应用程序用于跨多个领域的研究:

  • 自动语音识别(以前为wav2letter项目)- 文档 | 教程

  • 图像分类

  • 物体检测

  • 语言建模

项目布局

手电筒分为几个部分:

  • flashlight/lib包含用于音频处理等的内核和独立实用程序。

  • flashlight/fl 是核心张量接口和神经网络库,默认使用 ArrayFire 张量库。

  • flashlight/pkg是构建在核心上的语音、视觉和文本的域包。

  • flashlight/app是核心库在跨领域机器学习中的应用。

快速开始

首先,构建并安装 Flashlight 并将其链接到您自己的项目< a i=4>.

Sequential 形成 Flashlight 序列Module用于链接计算。

实现一个简单的卷积网络很容易。

请参阅MNIST 示例,获取包含训练循环和数据集抽象的完整教程。

Variable 是一种基于磁带的抽象,它包装了 Flashlight 张量。基于磁带的Flashlight 中的自动微分很简单,并且按照您的预期工作。

自动评分示例

搭建和安装

安装vcpkg | 使用 Docker | 来源 | 来自来源vcpkg | 使用 Flashlight 构建您的项目

要求

编译至少需要:

  • 具有良好 C++17 支持的 C++ 编译器(例如 gcc/g++ >= 7)

  • CMake — 版本 3.10 或更高版本,以及 make

  • 基于 Linux 的操作系统。

如果从源代码构建完整依赖项列表以了解更多详细信息=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

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/165928
 
214 次点击