All Projects → Tencent → Feathercnn

Tencent / Feathercnn

Licence: other
FeatherCNN is a high performance inference engine for convolutional neural networks.

Projects that are alternatives of or similar to Feathercnn

Lsuvinit
Reference caffe implementation of LSUV initialization
Stars: ✭ 99 (-91.05%)
Mutual labels:  convolutional-neural-networks, caffe
Turkce Yapay Zeka Kaynaklari
Türkiye'de yapılan derin öğrenme (deep learning) ve makine öğrenmesi (machine learning) çalışmalarının derlendiği sayfa.
Stars: ✭ 1,900 (+71.79%)
Mutual labels:  convolutional-neural-networks, caffe
Core50
CORe50: a new Dataset and Benchmark for Continual Learning
Stars: ✭ 91 (-91.77%)
Mutual labels:  convolutional-neural-networks, caffe
Vehicle Retrieval Kcnns
vehicle image retrieval using k CNNs ensemble method
Stars: ✭ 81 (-92.68%)
Mutual labels:  convolutional-neural-networks, caffe
Caffenet Benchmark
Evaluation of the CNN design choices performance on ImageNet-2012.
Stars: ✭ 700 (-36.71%)
Mutual labels:  convolutional-neural-networks, caffe
Caffe Deepbinarycode
Supervised Semantics-preserving Deep Hashing (TPAMI18)
Stars: ✭ 206 (-81.37%)
Mutual labels:  convolutional-neural-networks, caffe
Idn Caffe
Caffe implementation of "Fast and Accurate Single Image Super-Resolution via Information Distillation Network" (CVPR 2018)
Stars: ✭ 104 (-90.6%)
Mutual labels:  convolutional-neural-networks, caffe
All Classifiers 2019
A collection of computer vision projects for Acute Lymphoblastic Leukemia classification/early detection.
Stars: ✭ 22 (-98.01%)
Mutual labels:  convolutional-neural-networks, caffe
O Cnn
O-CNN: Octree-based Convolutional Neural Networks for 3D Shape Analysis
Stars: ✭ 432 (-60.94%)
Mutual labels:  convolutional-neural-networks, caffe
Cnn face detection
Implementation based on the paper Li et al., “A Convolutional Neural Network Cascade for Face Detection, ” 2015 CVPR
Stars: ✭ 251 (-77.31%)
Mutual labels:  convolutional-neural-networks, caffe
Machine Learning Curriculum
💻 Make machines learn so that you don't have to struggle to program them; The ultimate list
Stars: ✭ 761 (-31.19%)
Mutual labels:  convolutional-neural-networks, caffe
Teacher Student Training
This repository stores the files used for my summer internship's work on "teacher-student learning", an experimental method for training deep neural networks using a trained teacher model.
Stars: ✭ 34 (-96.93%)
Mutual labels:  convolutional-neural-networks, caffe
Trafficvision
MIVisionX toolkit is a comprehensive computer vision and machine intelligence libraries, utilities and applications bundled into a single toolkit.
Stars: ✭ 52 (-95.3%)
Mutual labels:  convolutional-neural-networks
Genproto
An online GUI tool used to visualize prototxt and generate prototxt for caffe(current version).
Stars: ✭ 56 (-94.94%)
Mutual labels:  caffe
Training toolbox caffe
Training Toolbox for Caffe
Stars: ✭ 51 (-95.39%)
Mutual labels:  caffe
Jacinto Ai Devkit
Training & Quantization of embedded friendly Deep Learning / Machine Learning / Computer Vision models
Stars: ✭ 49 (-95.57%)
Mutual labels:  caffe
Haddoc2
Caffe to VHDL
Stars: ✭ 57 (-94.85%)
Mutual labels:  caffe
Active Convolution
Active Convolution
Stars: ✭ 56 (-94.94%)
Mutual labels:  caffe
Numpy Convnet
A small and pure Numpy Convolutional Neural Network library.
Stars: ✭ 50 (-95.48%)
Mutual labels:  convolutional-neural-networks
Fashion Parsing
Repository of my fashion-parsing project. This project is put on hold since I am doing another project now, but will debug if bugs are reported.
Stars: ✭ 50 (-95.48%)
Mutual labels:  caffe

license Release Version PRs Welcome

Introduction

FeatherCNN is a high-performance lightweight CNN inference library, developed by Tencent AI Platform Department. FeatureCNN origins from our game AI project for King of Glory (Chinese: 王者荣耀), in which we aim to build a neural model for MOBA game AI and run it on mobile devices. FeatherCNN currently targets at ARM CPUs. We will extend it to cover other architecutures in the near future.

Comparing with other libraries, FeatherCNN has the following features:

  • High Performance FeatherCNN delivers state-of-the-art inference computing performance on a wide range of devices, including mobile phones (iOS/Android), embedded devices (Linux) as well as ARM-based servers (Linux).

  • Easy Deployment FeatherCNN packs everything in a single code base to get rid of third-party dependencies. Hence, it facilitates deployment on mobile platforms.

  • Featherweight The compiled FeatherCNN library is small-sized (hundreds of KBs).

Please kindly open an issue in this repo for bug reports and enhancement suggests. We are grateful to user responses and will actively polish this library.

Citation

FeatherCNN: Fast Inference Computation with TensorGEMM on ARM Architectures (TPDS September 2019, In press, DOI:10.1109/TPDS.2019.2939785)

Clone hints

The FeatherCNN repository has a heavy development history, please only clone the master branch as follows:

git clone -b master --single-branch https://github.com/tencent/FeatherCNN.git

Detailed Instructions for iOS/Android/Linux

Build From Source

iOS Guide

Android Guide

Android ADB Guide

Usage

Model Format Conversion

FeatherCNN accepts Caffemodels. It merges the structure file (.prototxt) and the weight file (.caffemodel) into a single binary model (.feathermodel). The convert tool requires protobuf, but you don't need them for the library.

Model Convert Guide.

Runtime Interfaces

The basic user interfaces are listed in feather/net.h. Currently we are using raw pointers to reference data. We may provide more convenient interfaces in the near future.

Before inference, FeatherCNN requires two steps to initialize the network.

feather::Net forward_net(num_threads);
forward_net.InitFromPath(FILE_PATH_TO_FEATHERMODEL);

The net can also be initialized with raw buffers and FILE pointers. We can perform forward computation with raw float* buffer consequently.

forward_net.Forward(PTR_TO_YOUR_INPUT_DATA);

The output can be extracted from the net by the name of blobs. The blob names are kept consistent with caffe prototxt.

forward_net.ExtractBlob(PTR_TO_YOUR_OUTPUT_BUFFER, BLOB_NAME);

BTW, you can also get the blob's data size by calling

size_t data_size = 0;
forward_net.GetBlobDataSize(&data_size, BLOB_NAME);

Performance Benchmarks

We have tested FeatherCNN on a bunch of devices, see this page for details.

User Groups

Telegram: https://t.me/FeatherCNN

QQ: 728147343

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].