{"id":13633394,"url":"https://github.com/Tencent/FeatherCNN","last_synced_at":"2025-04-18T10:34:38.923Z","repository":{"id":49436877,"uuid":"131234205","full_name":"Tencent/FeatherCNN","owner":"Tencent","description":"FeatherCNN is a high performance inference engine for convolutional neural networks.","archived":false,"fork":false,"pushed_at":"2019-09-24T06:34:01.000Z","size":42745,"stargazers_count":1211,"open_issues_count":20,"forks_count":284,"subscribers_count":100,"default_branch":"master","last_synced_at":"2024-10-30T01:38:25.504Z","etag":null,"topics":["android","arm-neon","caffe","convolutional-neural-networks","inference-engine","ios"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Tencent.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-04-27T02:21:30.000Z","updated_at":"2024-10-22T14:17:56.000Z","dependencies_parsed_at":"2022-09-05T08:21:34.267Z","dependency_job_id":null,"html_url":"https://github.com/Tencent/FeatherCNN","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Tencent%2FFeatherCNN","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Tencent%2FFeatherCNN/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Tencent%2FFeatherCNN/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Tencent%2FFeatherCNN/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Tencent","download_url":"https://codeload.github.com/Tencent/FeatherCNN/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":223779699,"owners_count":17201217,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["android","arm-neon","caffe","convolutional-neural-networks","inference-engine","ios"],"created_at":"2024-08-01T23:00:36.462Z","updated_at":"2024-11-09T02:31:56.971Z","avatar_url":"https://github.com/Tencent.png","language":"C++","readme":"\u003cimg width=\"420\"  src=\"https://github.com/Tencent/FeatherCNN/wiki/Images/logo.png\"/\u003e\r\n\r\n[![license](http://img.shields.io/badge/license-BSD3-blue.svg?style=flat)](https://github.com/Tencent/FeatherCNN/blob/master/LICENSE)\r\n[![Release Version](https://img.shields.io/badge/release-0.1.0-red.svg)](https://github.com/Tencent/FeatherCNN/releases)\r\n[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](https://github.com/Tencent/FeatherCNN/pulls)\r\n\r\n## Introduction\r\n\r\nFeatherCNN is a high-performance lightweight CNN inference library, developed by Tencent AI Platform Department. \r\nFeatureCNN 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. \r\nFeatherCNN currently targets at ARM CPUs. \r\nWe will extend it to cover other architecutures in the near future.\r\n\r\nComparing with other libraries, FeatherCNN has the following features: \r\n\r\n- **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). \r\n\r\n- **Easy Deployment** FeatherCNN packs everything in a single code base to get rid of third-party dependencies. Hence, it facilitates deployment on mobile platforms. \r\n\r\n- **Featherweight** The compiled FeatherCNN library is small-sized (hundreds of KBs). \r\n\r\nPlease 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.\r\n\r\n## Citation\r\n\r\nFeatherCNN: Fast Inference Computation with TensorGEMM on ARM Architectures (TPDS September 2019, In press, DOI:10.1109/TPDS.2019.2939785)\r\n\r\n## Clone hints\r\nThe FeatherCNN repository has a heavy development history, please only clone the master branch as follows:\r\n```\r\ngit clone -b master --single-branch https://github.com/tencent/FeatherCNN.git\r\n```\r\n\r\n## Detailed Instructions for iOS/Android/Linux\r\n\r\n[**Build From Source**](https://github.com/Tencent/FeatherCNN/wikis/Build-From-Source)\r\n\r\n[**iOS Guide**](https://github.com/Tencent/FeatherCNN/wikis/iOS-Guide)\r\n\r\n[**Android Guide**](https://github.com/Tencent/FeatherCNN/wiki/Android-Guide)\r\n\r\n[**Android ADB Guide**](https://github.com/Tencent/FeatherCNN/wiki/Android-ADB-Guide)\r\n\r\n## Usage\r\n\r\n### Model Format Conversion\r\n\r\nFeatherCNN 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. \r\n\r\n[**Model Convert Guide**](https://github.com/Tencent/FeatherCNN/wikis/Model-Convert-Guide).\r\n\r\n### Runtime Interfaces\r\n\r\nThe basic user interfaces are listed in feather/net.h. Currently we are using raw pointers to reference data.\r\nWe may provide more convenient interfaces in the near future.\r\n\r\nBefore inference, FeatherCNN requires two steps to initialize the network.\r\n```cpp\r\nfeather::Net forward_net(num_threads);\r\nforward_net.InitFromPath(FILE_PATH_TO_FEATHERMODEL);\r\n```\r\nThe net can also be initialized with raw buffers and FILE pointers.\r\nWe can perform forward computation with raw `float*` buffer consequently. \r\n```cpp\r\nforward_net.Forward(PTR_TO_YOUR_INPUT_DATA);\r\n```\r\nThe output can be extracted from the net by the name of blobs. The blob names are kept consistent with caffe prototxt.\r\n```cpp\r\nforward_net.ExtractBlob(PTR_TO_YOUR_OUTPUT_BUFFER, BLOB_NAME);\r\n```\r\nBTW, you can also get the blob's data size by calling\r\n```cpp\r\nsize_t data_size = 0;\r\nforward_net.GetBlobDataSize(\u0026data_size, BLOB_NAME);\r\n```\r\n\r\n## Performance Benchmarks\r\nWe have tested FeatherCNN on a bunch of devices, see [**this page**](https://github.com/Tencent/FeatherCNN/wikis/Benchmarks) for details.\r\n\r\n## User Groups\r\n\r\nTelegram: https://t.me/FeatherCNN\r\n\r\nQQ: 728147343\r\n","funding_links":[],"categories":["Optimizations","Inference Engines","C++","Profiling","Deep Learning Framework","Projects List"],"sub_categories":["Profiling","Feather CNN","High-Level DL APIs"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FTencent%2FFeatherCNN","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FTencent%2FFeatherCNN","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FTencent%2FFeatherCNN/lists"}