AI平台相关

alibaba/MNN

MNN is a lightweight deep neural network inference engine.

MNN是一个轻量级的深度神经网络推理引擎,在端侧加载深度神经网络模型进行推理预测。目前,MNN已经在阿里巴巴的手机淘宝、手机天猫、优酷等20多个App中使用,覆盖直播、短视频、搜索推荐、商品图像搜索、互动营销、权益发放、安全风控等场景。此外,IoT等场景下也有若干应用。

armnn

Arm NN is a key component of the machine learning platform

ArmNN是Arm机构开源的基于arm嵌入式设备的inference框架,在Arm Cortex-A CPUs、Arm Mali GPUs、Arm Machine Learning processor都可以达到很高的加速效果。

BVLC/caffe

Caffe: a fast open framework for deep learning. http://caffe.berkeleyvision.org/

Caffe是一个深度学习框架,考虑了表达,速度和模块化。

dabnn

dabnn is an accelerated binary neural networks inference framework for mobile platform

dabnn是用于移动平台的加速二进制神经网络推理框架。

deep-learning-roadmap

All You Need to Know About Deep Learning - A kick-starter

收集与深度学习有关的资源。

DeepLearning-500-questions

深度学习500问,以问答形式对常用的概率知识、线性代数、机器学习、深度学习、计算机视觉等热点问题进行阐述,以帮助自己及有需要的读者。

facebook/FAI-PEP

Facebook AI Performance Evaluation Platform

用于在一组模型和各种后端上比较机器学习推理运行时的性能。

google/tensorflow

An Open Source Machine Learning Framework for Everyone https://tensorflow.org

TensorFlow是用于机器学习的端到端开源平台。

google/tfjs-core

WebGL-accelerated ML // linear algebra // automatic differentiation for JavaScript.

WebGL加速库。

google/XNNPACK

High-efficiency floating-point neural network inference operators for mobile, server, and Web

XNNPACK是针对ARM,WebAssembly和x86平台的高度优化的浮点神经网络推理运算符库。

huawei/bolt

Bolt is a deep learning library with high performance and heterogeneous flexibility.

Bolt是用于移动设备的轻量级库。

Bolt作为用于各种神经网络的通用部署工具,旨在尽可能减少推理运行时间;更高的速度,更好的安全性和更有效的内存管理是Bolt努力提供的优势。

intel/mkl-dnn

Deep Neural Network Library (DNNL) https://01.org/dnnl

深度神经网络库(DNNL),是用于深度学习应用程序的开源性能库。 该库包含针对神经网络的基本构建模块,这些神经网络针对英特尔架构处理器和英特尔处理器图形进行了优化。

intel/OpenVINO

A scalable inference serving solution with Intel performance optimizations and TensorFlow Serving API

具有英特尔性能优化和 TensorFlow Serving API 的可扩展推理服务解决方案。

kaldi

microsoft/MMdnn

MMdnn is a set of tools to help users inter-operate among different deep learning frameworks. E.g. model conversion and visualization. Convert models between Caffe, Keras, MXNet, Tensorflow, CNTK, PyTorch Onnx and CoreML.

MMdnn是一个全面的跨框架工具,用于转换,可视化和诊断深度学习(DL)模型。

MM 代表模型管理,dnn 代表深度神经网络。

microsoft/nni

An open source AutoML toolkit for automate machine learning lifecycle, including feature engineering, neural architecture search, model compression and hyper-parameter tuning.

用于自动化机器学习生命周期的开源AutoML工具包,包括功能工程,神经体系结构搜索,模型压缩和超参数调整。

netron

Visualizer for neural network, deep learning and machine learning models

用于神经网络,深度学习和机器学习模型的可视化工具,支持ONNX (.onnx, .pb, .pbtxt), Keras (.h5, .keras), Core ML (.mlmodel), Caffe (.caffemodel, .prototxt), Caffe2 (predict_net.pb, predict_net.pbtxt), Darknet (.cfg), MXNet (.model, -symbol.json), ncnn (.param) and TensorFlow Lite (.tflite)等框架。

onnx

Open Neural Network Exchange https://onnx.ai/

开放式神经网络交换(ONNX)是一个开放的生态系统,使AI开发人员能够随着项目的发展选择正确的工具。

opencv/dldt

OpenVINO™ Toolkit - Deep Learning Deployment Toolkit repository https://docs.openvinotoolkit.org/late…

深度学习部署工具库,该工具包允许开发人员通过与应用程序逻辑集成的高级C ++推理引擎API部署预训练的深度学习模型。

包括两个组件:模型优化器和推理引擎,以及CPU,GPU和异构插件,以加速在Intel®CPU和Intel®Processor Graphics上的深度学习推理。 它支持 Open Model Zoo 中的预训练模型,以及100多种流行格式(例如CaffeTensorFlowMXNetONNX)的开源和公共模型。

OpenNN

OpenNN is a software library written in C++ for advanced analytics. It implements neural networks, the most successful machine learning method.

OpenNN是用C ++编写的用于高级分析的软件库, 它实现了神经网络。

PaddlePaddle/Paddle-Lite

Multi-platform high performance deep learning inference engine (『飞桨』多平台高性能深度学习预测引擎) https://paddle-lite.readthedocs.io/zh…

Paddle Lite为Paddle-Mobile的升级版,定位支持包括手机移动端在内更多场景的轻量化高效预测,支持更广泛的硬件和平台,是一个高性能、轻量级的深度学习预测引擎。在保持和PaddlePaddle无缝对接外,也兼容支持其他训练框架产出的模型。

pytorch

Tensors and Dynamic neural networks in Python with strong GPU acceleration https://pytorch.org

具有强大GPU加速功能的Python中的张量和动态神经网络。

Tencent/ncnn

ncnn is a high-performance neural network inference framework optimized for the mobile platform

ncnn 是一个为手机端极致优化的高性能神经网络前向计算框架。ncnn 从设计之初深刻考虑手机端的部署和使用。无第三方依赖,跨平台,手机端 cpu 的速度快于目前所有已知的开源框架。基于 ncnn,开发者能够将深度学习算法轻松移植到手机端高效执行,开发出人工智能 APP,将 AI 带到你的指尖。ncnn 目前已在腾讯多款应用中使用,如 QQ,Qzone,微信,天天P图等。

XiaoMi/mace

MACE is a deep learning inference framework optimized for mobile heterogeneous computing platforms.

Mobile AI Compute Engine (MACE) 是一个专为移动端异构计算平台(支持Android, iOS, Linux, Windows)优化的神经网络计算框架。

XiaoMi/mobile-ai-bench

Benchmarking Neural Network Inference on Mobile Devices

MobileAIBench 是一个端到端的测试工具,用于评测相同的模型在不同硬件和软件框架上运行的性能和精度表现,对开发者的技术选型给出客观参考数据。

webdnn

The Fastest DNN Running Framework on Web Browser https://mil-tokyo.github.io/webdnn

WebDNN是一个开源软件框架,用于在Web浏览器上执行深度神经网络(DNN)预训练模型。

前向推理模型的来源

模型网络结构分析

资源 | 适合AI新手的9款人工智能开源软件

9款托管在码云上的人工智能开源软件。

编程语言相关

awesome-comment

神级注释.

boost

Super-project for modularized Boost https://github.com/boostorg/wiki/wiki…

准标准库,功能强大涉及能想的到的大部分非特别领域的算法,有一个大的C++社区支持。

doxygen

Doxygen is the de facto standard tool for generating documentation from annotated C++ sources, but it also supports other popular programming languages such as C, Objective-C, C#, PHP, Java, Python, IDL (Corba, Microsoft, and UNO/OpenOffice flavors), Fortran, VHDL, Tcl, and to some extent D.

注释文档生成工具。

google/breakpad

Mirror of Google Breakpad project https://chromium.googlesource.com/bre…

Breakpad是实现崩溃报告系统的一组客户端和服务器组件。

一个项目的开始需要做一些什么样的基础设施,crash dump和运行logging毫无疑问都是应该有的,这个项目就是负责在crash的时候收集信息,发出crash dump报告的。

google/benchmark

A microbenchmark support library

对某些代码片段或者单元测试的性能评测,例如:

1
2
3
4
5
6
7
8
9
10
11
12
13
#include <benchmark/benchmark.h>

static void BM_SomeFunction(benchmark::State& state) {
// Perform setup here
for (auto _ : state) {
// This code gets timed
SomeFunction();
}
}
// Register the function as a benchmark
BENCHMARK(BM_SomeFunction);
// Run the benchmark
BENCHMARK_MAIN();

google/gflags

The gflags package contains a C++ library that implements commandline flags processing. It includes built-in support for standard types such as string and the ability to define flags in the source file in which they are used. Online documentation available at: https://gflags.github.io/gflags/

C++ 命令行程序参数的解析,用法如:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <gflags/gflags.h>

DEFINE_string(input_meta_path, "", "input meta path.");
DEFINE_int32(num_threads, 1, "number of threads");
DEFINE_bool(print_op_benchmark, false, "print op benchmark or not.");

int main(int argc, char **argv) {
std::string usage = "run benchmark, e.g. " + std::string(argv[0]) + " [flags]";
gflags::SetUsageMessage(usage);
gflags::ParseCommandLineFlags(&argc, &argv, true);

// to do something ...
return 0;
}

google/flatbuffers

FlatBuffers: Memory Efficient Serialization Library http://google.github.io/flatbuffers/

FlatBuffers是跨平台序列化库,旨在最大程度地提高内存效率。 可以直接访问序列化的数据,而无需先解析/拆包,同时仍具有很好的前向/向后兼容性。

google/glog

Logging library for C++

Google glog是一个基于程序级记录日志信息的c++库,编程使用方式与c++的stream操作类似。

例:

1
LOG(INFO) << "Found " << num_cookies << " cookies";

google/protobuf

Protocol Buffers - Google’s data interchange format https://developers.google.com/protoco…

protobuf是一个与语言、平台无关的可扩展协议,用于序列化结构化数据。

google/googletest

Googletest - Google Testing and Mocking Framework

Google测试和模拟框架。

libevent

Event notification library https://libevent.org

libevent旨在替换事件驱动的网络服务器中的事件循环。 应用程序只需要调用event_dispatch(),然后动态添加或删除事件,而无需更改事件循环。

  • 相关资料
    • 《UNIX网络编程》

libjpeg-turbo

Main libjpeg-turbo repository https://libjpeg-turbo.org

读写 jpgjpeg 图片。

libpng

LIBPNG: Portable Network Graphics support, official libpng repository. http://libpng.sf.net

读写 png 图片。

libyuv

unofficial libyuv mirror https://chromium.googlesource.com/lib…

libyuv是一个开源项目,其中包括YUV缩放和转换功能。

  • 相关资料
    • 使用libyuv对yuv数据进行缩放,旋转,镜像,裁剪等操作:LibyuvDemo

nedmalloc

An EXTREMELY FAST portable thread caching malloc implementation written in C for multiple threads without lock contention based on dlmalloc. Optimised for x86 and x64. Compatible with C++. Can patch itself into existing binaries on Windows. http://www.nedprod.com/programs/porta…

一个用C语言编写的EXTREMELY FAST便携式线程缓存malloc实现,用于基于dlmalloc的无锁争用的多个线程。

针对x86和x64优化。

与C ++兼容。

适配Windows上的现有二进制文件中。

nlohmann/json

JSON for Modern C++ https://nlohmann.github.io/json/

C++ 读写json文件或数据。

opencv

Open Source Computer Vision Library https://opencv.org

开源的计算机视觉库。

QT

一个框架。一套代码库。任意平台部署。

一个多平台的C++图形用户界面应用程序框架(GUI库)。

stackoverflow_python

stackoverflow上关于python的翻译

stb

stb single-file public domain libraries for C/C++ https://twitter.com/nothings

只含头文件,读写图片

面试经验

Algorithm_for_Interview-Chinese

Algorithm for Interview(面试算法笔记-中文)

CS-Notes

技术面试必备基础知识、Leetcode、计算机操作系统、计算机网络、系统设计、Java、Python、C++

interview_python

关于Python的面试题

wangzheng0822/algo

数据结构和算法必知必会的50个代码实现

开源图书

500LineorLess_CN

500 line or less 中文翻译计划。

521xueweihan/HelloGitHub

分享 GitHub 上有趣、入门级的开源项目。https://hellogithub.com/

  • 相关资料

linux-command

Linux命令大全搜索工具,内容包含Linux命令手册、详解、学习、搜集。

550 多个 Linux 命令,内容包含 Linux 命令手册、详解、学习,值得收藏的 Linux 命令速查手册。

LinuxTool

Linux下常用工具、命令介绍

介绍Linux常用的工具,还有常用操作及其命令。

linuxtools_rst

Linux工具快速教程 http://linuxtools-rst.readthedocs.org…

专注于Linux工具的最常用用法,以便读者能以最快时间掌握,并在工作中应用。

Linux-Tutorial

Java 程序员眼中的 Linux

一些知名的开源网站