Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

https://github.com/pcpLiu/Serrano

A Swift deep learning library with Accelerate and Metal support.
https://github.com/pcpLiu/Serrano

deep-learning deep-neural-networks ios machine-learning macos swift

Last synced: about 2 months ago
JSON representation

A Swift deep learning library with Accelerate and Metal support.

Lists

README

        

![logo](https://github.com/pcpLiu/Serrano/blob/master/logo.png)



travisCI-building


coverage


iOS


macOS


License: MIT


Swift 3.2


gitter

## Serrano
Aiming to offering popular and cutting edge techs in deep learning area on iOS devices, Serrano is developed as a tool for developers & researchers with deep learning background to quickly implement their ideas on iOS devices. Meanwhile, it supports macOS as a pure swift framework bonus.

## Features
- Implemented an efficient NDArray class [Tensor](http://serrano-lib.org/docs/latest/api/Classes/Tensor.html) which supports:
- CPU calculation with [BLAS](https://developer.apple.com/documentation/accelerate/blas)/[vecLib](https://developer.apple.com/documentation/accelerate/veclib)/[vDSP](https://developer.apple.com/documentation/accelerate/vdsp) for better performance
- GPU calculation on [no-copy MTLBuffer](https://developer.apple.com/documentation/metal/mtldevice/1433382-makebuffer) for memory saving
- Offer common operators ([operator list](http://serrano-lib.org/)) for constructing various computation graphs and it is easy to [implement custom operators](http://serrano-lib.org/docs/latest/guides/Extension/Write%20your%20own%20operator/)
- [Graph API](http://serrano-lib.org/docs/latest/api/Classes/ComputationGraph.html) support forward and backward with auto differentiation
- No third-party library dependent. Compatible with iOS 10 and macOS.

## Install

#### Via CocoaPods
Install the latest version:
```
pod 'Serrano', :git => 'https://github.com/pcpLiu/Serrano.git'
```

#### Manually integrate into your workspace/project

Download or clone Serrano and drag `serrano.xcodeproj` into your workspace or project.
Add `Serrano` into the `Target Dependencies` of your target.

## Docs
The guides and APIs are hosted at [http://serrano-lib.org](http://serrano-lib.org).

#### Quick example

Check [Serrano/Examples/Graph/VGG16.swift](https://github.com/pcpLiu/Serrano/blob/master/Examples/Graph/VGG16.swift) seeing how to use Graph API to construct a forward VGG16.

#### TinyYOLO Demo Project
Check [Serrano-TinyYOLO](https://github.com/pcpLiu/Serrano-TinyYOLO), an iOS App do object detection on taken photo.

## Questions && Issues
:bangbang: Please __only open [bug]/[feature request] related issues__ in THIS repo and follow this [issue guide](). :bangbang:

__For any general issue/discussion || framework support__, please go to [pcpLiu/SerranoExplore](https://github.com/pcpLiu/SerranoExplore) opening an issue. Also you can discuss on [Gitter](https://gitter.im/SerranoFramework/Lobby)

## macOSX
Serrano was developed as an iOS framework. However, the framework could be added and used in Cocoa applications (macOS App) without effort.

## Contribution
Contribution are wanted :loudspeaker:. And please read the [Contributing Guide](http://serrano-lib.org/docs/latest/guides/Contribution/Contribution/) before making a PR.

## License
Serrano is liscensed under [MIT](https://github.com/pcpLiu/serrano/blob/master/LICENSE). Copyright (c) 2017, Zhonghao (Tim) Liu.

## Acknowledgement
Serrano are inspired and influenced by these open source projects:

- [MXNET](https://github.com/apache/incubator-mxnet)
- [Keras](https://github.com/fchollet/keras)
- [TensorFlow](https://www.tensorflow.org/)
- [Caffe](https://github.com/BVLC/caffe)