All Projects → Cambricon → caffe

Cambricon / caffe

Licence: other
This fork of BVLC/Caffe is dedicated to supporting Cambricon deep learning processor and improving performance of this deep learning framework when running on Machine Learning Unit(MLU).

Programming Languages

C++
36643 projects - #6 most used programming language
c
50402 projects - #5 most used programming language

Projects that are alternatives of or similar to caffe

Ncnn
ncnn is a high-performance neural network inference framework optimized for the mobile platform
Stars: ✭ 13,376 (+33340%)
Mutual labels:  caffe, inference
Jetson Inference
Hello AI World guide to deploying deep-learning inference networks and deep vision primitives with TensorRT and NVIDIA Jetson.
Stars: ✭ 5,191 (+12877.5%)
Mutual labels:  caffe, inference
Gpu Rest Engine
A REST API for Caffe using Docker and Go
Stars: ✭ 412 (+930%)
Mutual labels:  caffe, inference
Dl inference
通用深度学习推理服务,可在生产环境中快速上线由TensorFlow、PyTorch、Caffe框架训练出的深度学习模型。
Stars: ✭ 209 (+422.5%)
Mutual labels:  caffe, inference
facial-landmarks
Facial landmarks detection with OpenCV, Dlib, DNN
Stars: ✭ 25 (-37.5%)
Mutual labels:  caffe
Caffe-installation-Raspberry-Pi-3
No description or website provided.
Stars: ✭ 23 (-42.5%)
Mutual labels:  caffe
model analyzer
Triton Model Analyzer is a CLI tool to help with better understanding of the compute and memory requirements of the Triton Inference Server models.
Stars: ✭ 144 (+260%)
Mutual labels:  inference
inferelator
Task-based gene regulatory network inference using single-cell or bulk gene expression data conditioned on a prior network.
Stars: ✭ 24 (-40%)
Mutual labels:  inference
chainer-dense-fusion
Chainer implementation of Dense Fusion
Stars: ✭ 21 (-47.5%)
Mutual labels:  inference
R2CNN
caffe re-implementation of R2CNN: Rotational Region CNN for Orientation Robust Scene Text Detection
Stars: ✭ 80 (+100%)
Mutual labels:  caffe
InferenceHelper
C++ Helper Class for Deep Learning Inference Frameworks: TensorFlow Lite, TensorRT, OpenCV, OpenVINO, ncnn, MNN, SNPE, Arm NN, NNabla, ONNX Runtime, LibTorch, TensorFlow
Stars: ✭ 142 (+255%)
Mutual labels:  inference
arboreto
A scalable python-based framework for gene regulatory network inference using tree-based ensemble regressors.
Stars: ✭ 33 (-17.5%)
Mutual labels:  inference
ddrl
Deep Developmental Reinforcement Learning
Stars: ✭ 27 (-32.5%)
Mutual labels:  caffe
optimum
🏎️ Accelerate training and inference of 🤗 Transformers with easy to use hardware optimization tools
Stars: ✭ 567 (+1317.5%)
Mutual labels:  inference
darknet2caffe
Conversion of yolo from DarkNet to Caffe
Stars: ✭ 25 (-37.5%)
Mutual labels:  caffe
theWorldInSafety
Surveillance System Against Violence
Stars: ✭ 31 (-22.5%)
Mutual labels:  caffe
DLInfBench
CNN model inference benchmarks for some popular deep learning frameworks
Stars: ✭ 51 (+27.5%)
Mutual labels:  caffe
forestError
A Unified Framework for Random Forest Prediction Error Estimation
Stars: ✭ 23 (-42.5%)
Mutual labels:  inference
nsfw api
Python REST API to detect images with adult content
Stars: ✭ 71 (+77.5%)
Mutual labels:  caffe
EmotionChallenge
Source code for 1st winner of face micro-emotion competition, FG 2017.
Stars: ✭ 37 (-7.5%)
Mutual labels:  caffe

Cambricon Caffe

To support Cambricon deep learning processor, the open source deep learning programming framework BVLC-Caffe has been modified. New functions such as off-line multi-core inference, online fusion mode, support of multiple cards and others are developed. Cambricon Caffe focus on inference, it is dedicated to improving BVLC-Caffe performance when running on Machine Learning Unit(MLU).

Cambricon Caffe Version

Cambricon Caffe supports several Cambricon Machine Learning Unit, please see below for more details.

  • For serials of MLU100:

You need to switch to the release_v1.0.0 branch first, and see below for how to use it.

  • For serials of MLU270:

You need to switch to the master branch first, and see below for how to use it.

Prerequisites

Cambricon Caffe has several dependencies as same as BVLC-Caffe does, please refer to caffe.berkeleyvision.org for details.

Building

You need to firstly clone Cambricon Caffe, and then go to scripts folder to compile Cambricon Caffe:

  • For serials of MLU100:
git clone [email protected]:Cambricon/caffe.git
cd caffe
git checkout release_v1.0.0
cd scripts

To build Cambricon Caffe, you could use build_cambriconcaffe.sh, which is in the scripts folder. It has three options:

  • -debug: build Cambricon Caffe with debug information.
  • -release: build Cambricon Caffe for production environment. This is the default build type.
  • -platform: specify platform argument. Supported arguments are x86, arm32, arm64. Default platform is x86.

x86

./build_cambriconcaffe.sh -platform x86

arm32

Please download cross toolchain, e.g. arm-linux-gnueabihf-4.8.3-201404, and set CROSS_TOOLCHAIN_PATH environment to point to the tool chain downloaded:

export CROSS_TOOLCHAIN_PATH=your_toolchain_path/bin  // please replace your_toolchain_path with your actual path

There is another dependent library set arm32_linux_lib, which is necessary for the compiling of Cambricon Caffe. It has been pre-compiled and is available for downloading on Cambricon's FTP site. Please clone caffe_boost, then run download_dependency.sh. The script will help download it.

The download_dependency.sh script needs one argument. The argument meaning is listed below:

  • 1: download arm32_linux_lib.
  • 2: download android_lib_r17b.

Firstly, download the library set.

git clone [email protected]:Cambricon/caffe_boost.git
cd caffe_boost/scripts
./download_dependency.sh 1

Then set ARM32_LINUX_LIB_ROOT environment variable for arm32_linux_lib:

export ARM32_LINUX_LIB_ROOT=your_lib_path  // please replace your_lib_path with your actual path

Once you have set up above two environment variables, you are ready to compile Cambricon Caffe for arm32 platform.

./build_cambriconcaffe.sh -platform arm32

arm64

For arm64, please download android-ndk-r17b firstly, it can be downloaded from NDK's official website. Then place it in /opt/shared/Android/Ndk/ directory(if not exists, please create one) and set ARM64_R17_NDK_ROOT environment as follows:

export ARM64_R17_NDK_ROOT=/opt/shared/Android/Ndk/android-ndk-r17b

There is another dependent library set android_lib_r17b. It also has been pre-compiled and is available for downloading on Cambricon's FTP site. Please input parameter 2 for download_dependency.sh.

git clone [email protected]:Cambricon/caffe_boost.git
cd caffe_boost/scripts
./download_dependency.sh 2

Finally, set ARM64_R17_ANDROID_LIB_ROOT environment variable for android_lib_r17b:

export ARM64_R17_ANDROID_LIB_ROOT=your_android_lib_path  // please replace your_android_lib_path with your actual path

Once you have finished setting the environment variables, you could compile Cambricon Caffe for arm64 platform:

./build_cambriconcaffe.sh -platform arm64
  • For serials of MLU270:
git clone [email protected]:Cambricon/caffe.git
cd caffe/scripts

To build Cambricon Caffe, you could use build_cambriconcaffe.sh, which is in the scripts folder. It has three options:

  • -debug: build Cambricon Caffe with debug information.
  • -release: build Cambricon Caffe for production environment. This is the default build type.
  • -platform: specify platform argument. Default platform is x86.
./build_cambriconcaffe.sh

License and Citation

Caffe is released under the BSD 2-Clause license. The BVLC reference models are released for unrestricted use.

Please cite Caffe in your publications if it helps your research:

@article{jia2014caffe,
  Author = {Jia, Yangqing and Shelhamer, Evan and Donahue, Jeff and Karayev, Sergey and Long, Jonathan and Girshick, Ross and Guadarrama, Sergio and Darrell, Trevor},
  Journal = {arXiv preprint arXiv:1408.5093},
  Title = {Caffe: Convolutional Architecture for Fast Feature Embedding},
  Year = {2014}
}

*Other names and brands may be claimed as the property of others

SSD: Single Shot MultiBox Detector

This repository contains merged code issued as pull request to BVLC caffe written by: Wei Liu, Dragomir Anguelov, Dumitru Erhan, Christian Szegedy, Scott Reed, Cheng-Yang Fu, Alexander C. Berg.

Original branch can be found at https://github.com/weiliu89/caffe/tree/ssd.

Read our wiki page for more details.

Darknet

If you use Darknet in your research please cite it!

@misc{darknet13,
  author =   {Joseph Redmon},
  title =    {Darknet: Open Source Neural Networks in C},
  howpublished = {\url{http://pjreddie.com/darknet/}},
  year = {2013--2016}
}

YOLOv2

If you use YOLOv2 in your work please cite it!

@article{redmon2016yolo9000,
  title={YOLO9000: Better, Faster, Stronger},
  author={Redmon, Joseph and Farhadi, Ali},
  journal={arXiv preprint arXiv:1612.08242},
  year={2016}
}

YOLOv3

If you use YOLOv3 in your work please cite it!

@article{yolov3,
  title={YOLOv3: An Incremental Improvement},
  author={Redmon, Joseph and Farhadi, Ali},
  journal = {arXiv},
  year={2018}
}

R-FCN

If you use R-FCN in your work please cite it!

@article{dai16rfcn,
  title={{R-FCN}: Object Detection via Region-based Fully Convolution Networks},
  author={Jifeng Dai, Yi Li, Kaiming He, Jian Sun},
  journal = {arXiv preprint arXiv:1605.06409},
  year={2016}
}
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].