A Swift deep learning library with Accelerate and Metal support.

Overview

logo

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 which supports:
  • Offer common operators (operator list) for constructing various computation graphs and it is easy to implement custom operators
  • Graph API 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.

Quick example

Check Serrano/Examples/Graph/VGG16.swift seeing how to use Graph API to construct a forward VGG16.

TinyYOLO Demo Project

Check Serrano-TinyYOLO, an iOS App do object detection on taken photo.

Questions && Issues

‼️ Please only open [bug]/[feature request] related issues in THIS repo and follow this issue guide. ‼️

For any general issue/discussion || framework support, please go to pcpLiu/SerranoExplore opening an issue. Also you can discuss on Gitter

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 📢 . And please read the Contributing Guide before making a PR.

License

Serrano is liscensed under MIT. Copyright (c) 2017, Zhonghao (Tim) Liu.

Acknowledgement

Serrano are inspired and influenced by these open source projects:

Comments
Releases(0.1.6-alpha)
  • 0.1.6-alpha(Dec 12, 2017)

  • 0.1.5-alpha(Dec 1, 2017)

  • 0.1.4-alpha(Nov 25, 2017)

  • 0.1.3-alpha(Nov 23, 2017)

    Improvements:

    • Improve the Conv2D performance [a95329, 2c113e, c412fa]
    • Fix MPS error in matrix multiply operator [57979d]
    • Improve Graph API by introducing ForwardGraph [dcfe1f]

    Note This release passed all testing on a local MAC machine. Travis-CI could not pass cause it runs out of time.

    Source code(tar.gz)
    Source code(zip)
  • 0.1.2-alpha(Nov 5, 2017)

    This releasee majorly added more guides. Also, modified few APIs involving with slice tensor making.

    Changelogs

    • Added guides
    • Changed APIs in Tensor making slice tensor. [5c7b41f]
    • Fixed force downcastign in servera places. [e6f7ac1]
    • Added API in SerranoEngine allowing loading user's Metal library. This is for custom operator. [5c28e3a]
    Source code(tar.gz)
    Source code(zip)
  • 0.1.1-alpha(Nov 3, 2017)

    This is an alpha development release.

    Release note:

    Core APIs ready:

    • Graph [backward, forward]
    • Tensor
    • Operator
    • Symbol

    Operators Ready (Grad compute not ready of some operators):

    • Unary operators
    • Binary operators
    • Reduce operators
    • Activation operators
    • Matrix multiplication operator
    • 2D convolutional operator
    • 2D Pooling operators

    Next phase goal:

    • Graph memory allocation optimization
    • Operator grad compute
    • Add operators:
      • Depth-wise convolutional operator
      • Batch normalization operator
    • Add optimizer:
      • Adam
    • Serrano-tool:
      • Convert Keras model
    Source code(tar.gz)
    Source code(zip)
Owner
pcpLiu
星分翼轸
pcpLiu
DL4S provides a high-level API for many accelerated operations common in neural networks and deep learning.

DL4S provides a high-level API for many accelerated operations common in neural networks and deep learning. It furthermore has automatic differentiati

DL4S Team 2 Dec 5, 2021
On-device wake word detection powered by deep learning.

Porcupine Made in Vancouver, Canada by Picovoice Porcupine is a highly-accurate and lightweight wake word engine. It enables building always-listening

Picovoice 2.8k Dec 30, 2022
Automatic spoken language identification (LID) using deep learning.

iLID Automatic spoken language identification (LID) using deep learning. Motivation We wanted to classify the spoken language within audio files, a pr

Thomas Werkmeister 85 Apr 3, 2022
This is an open-source project for the aesthetic evaluation of images based on the deep learning-caffe framework, which we completed in the Victory team of Besti.

This is an open-source project for the aesthetic evaluation of images based on the deep learning-caffe framework, which we completed in the Victory team of Besti.

The Victory Group of Besti 102 Dec 15, 2022
Shallow and Deep Convolutional Networks for Saliency Prediction

Shallow and Deep Convolutional Networks for Saliency Prediction Paper accepted at 2016 IEEE Conference on Computer Vision and Pattern Recognition (CVP

Image Processing Group - BarcelonaTECH - UPC 183 Jan 5, 2023
The source code of 'Visual Attribute Transfer through Deep Image Analogy'.

Deep Image Analogy The major contributors of this repository include Jing Liao, Yuan Yao, Lu Yuan, Gang Hua and Sing Bing Kang at Microsoft Research.

MSRA CVer 1.4k Jan 6, 2023
Automatic colorization using deep neural networks. Colorful Image Colorization. In ECCV, 2016.

Colorful Image Colorization [Project Page] Richard Zhang, Phillip Isola, Alexei A. Efros. In ECCV, 2016. + automatic colorization functionality for Re

Richard Zhang 3k Dec 27, 2022
A powerful SwiftUI Architecture that merges Redux to the functional world of Swift. While bringing powerful workflows to streamline CoreML/Metal/IPFS usage in the Apple ecosystem.

GraniteUI - v0.0 - WIP A powerful SwiftUI Architecture that merges Redux event handling and state management with functional programming. While bringi

Kala 2 Dec 22, 2022
The Swift machine learning library.

Swift AI is a high-performance deep learning library written entirely in Swift. We currently offer support for all Apple platforms, with Linux support

Swift AI 5.9k Jan 2, 2023
Easily craft fast Neural Networks on iOS! Use TensorFlow models. Metal under the hood.

Bender Bender is an abstraction layer over MetalPerformanceShaders useful for working with neural networks. Contents Introduction Why did we need Bend

xmartlabs 1.7k Dec 24, 2022
Artificial intelligence/machine learning data structures and Swift algorithms for future iOS development. bayes theorem, neural networks, and more AI.

Swift Brain The first neural network / machine learning library written in Swift. This is a project for AI algorithms in Swift for iOS and OS X develo

Vishal 331 Oct 14, 2022
🤗 Transformers: State-of-the-art Machine Learning for Pytorch, TensorFlow, and JAX.

English | 简体中文 | 繁體中文 | 한국어 State-of-the-art Machine Learning for JAX, PyTorch and TensorFlow ?? Transformers provides thousands of pretrained models

Hugging Face 77.1k Dec 31, 2022
MLKit is a simple machine learning framework written in Swift.

MLKit (a.k.a Machine Learning Kit) ?? MLKit is a simple machine learning framework written in Swift. Currently MLKit features machine learning algorit

Guled 152 Nov 17, 2022
This repo contains beginner examples to advanced in swift. Aim to create this for learning native iOS development.

iOS-learning-with-swift-22 This repo contains beginner examples to advanced in swift. Aim to create this for learning native iOS development. Oh, you

Umesh Jangid 0 Jan 9, 2022
Scutil - The swift version of my ASOC scutilUtil application. An interesting learning excercise

scutil this is the swift version of my ASOC "scutilUtil" application. An interes

null 1 Feb 15, 2022
Generate sniglets with machine learning

Give Me A Sniglet! Give Me a Sniglet is a random word-like generator with an on-device machine learning model that validates whether the word is likel

Marquis Kurt 4 Mar 3, 2022
Mobile-ios-ml - SBB Mobile Machine Learning for iOS devices

ESTA library: Machine Learning for iOS This framework simplifies the integration

Swiss Federal Railways (SBB) 9 Jul 16, 2022
Conjugar is an app for learning Spanish verb conjugations.

Introduction Conjugar is an iPhone™ app for learning Spanish verb conjugations. Conjugar conjugates most Spanish verbs, regular and irregular, in all

Josh Adams 34 Oct 5, 2022
A toolbox of AI modules written in Swift: Graphs/Trees, Support Vector Machines, Neural Networks, PCA, K-Means, Genetic Algorithms

AIToolbox A toolbox of AI modules written in Swift: Graphs/Trees, Linear Regression, Support Vector Machines, Neural Networks, PCA, KMeans, Genetic Al

Kevin Coble 776 Dec 18, 2022