├── unsorted.md └── README.md /unsorted.md: -------------------------------------------------------------------------------- 1 | 2 | # Other libraries (unsorted and non-validated) 3 | This is an unsorted list of presumably iOS-compatible libraries. The list is composed by copy-pasting from some other awesome-lists found somewhere on github. 4 | 5 | 6 | ## C 7 | 8 | 9 | #### Computer Vision 10 | 11 | * [CCV](https://github.com/liuliu/ccv) - C-based/Cached/Core Computer Vision Library, A Modern Computer Vision Library 12 | * [VLFeat](http://www.vlfeat.org/) - VLFeat is an open and portable library of computer vision algorithms, which has Matlab toolbox 13 | 14 | 15 | ## C++ 16 | 17 | 18 | #### Computer Vision 19 | 20 | * [DLib](http://dlib.net/imaging.html) - DLib has C++ and Python interfaces for face detection and training general object detectors. 21 | * [EBLearn](http://eblearn.sourceforge.net/) - Eblearn is an object-oriented C++ library that implements various machine learning models 22 | * [VIGRA](https://github.com/ukoethe/vigra) - VIGRA is a generic cross-platform C++ computer vision and machine learning library for volumes of arbitrary dimensionality with Python bindings. 23 | 24 | 25 | #### General-Purpose Machine Learning 26 | 27 | * [MLPack](http://www.mlpack.org/) - A scalable C++ machine learning library 28 | * [DLib](http://dlib.net/ml.html) - A suite of ML tools designed to be easy to imbed in other applications 29 | * [encog-cpp](https://code.google.com/p/encog-cpp/) 30 | * [Vowpal Wabbit (VW)](https://github.com/JohnLangford/vowpal_wabbit/wiki) - A fast out-of-core learning system. 31 | * [sofia-ml](https://code.google.com/p/sofia-ml/) - Suite of fast incremental algorithms. 32 | * [Shogun](https://github.com/shogun-toolbox/shogun) - The Shogun Machine Learning Toolbox 33 | * [CXXNET](https://github.com/antinucleon/cxxnet) - Yet another deep learning framework with less than 1000 lines core code [DEEP LEARNING] 34 | * [XGBoost](https://github.com/tqchen/xgboost) - A parallelized optimized general purpose gradient boosting library. 35 | * [Stan](http://mc-stan.org/) - A probabilistic programming language implementing full Bayesian statistical inference with Hamiltonian Monte Carlo sampling 36 | * [BanditLib](https://github.com/jkomiyama/banditlib) - A simple Multi-armed Bandit library. 37 | * [Timbl](http://ilk.uvt.nl/timbl) - A software package/C++ library implementing several memory-based learning algorithms, among which IB1-IG, an implementation of k-nearest neighbor classification, and IGTree, a decision-tree approximation of IB1-IG. Commonly used for NLP. 38 | 39 | 40 | #### Natural Language Processing 41 | * [MIT Information Extraction Toolkit](https://github.com/mit-nlp/MITIE) - C, C++, and Python tools for named entity recognition and relation extraction 42 | * [CRF++](https://taku910.github.io/crfpp/) - Open source implementation of Conditional Random Fields (CRFs) for segmenting/labeling sequential data & other Natural Language Processing tasks. 43 | * [BLLIP Parser](http://github.com/BLLIP/bllip-parser) - BLLIP Natural Language Parser (also known as the Charniak-Johnson parser) 44 | * [colibri-core](https://github.com/proycon/colibri-core) - C++ library, command line tools, and Python binding for extracting and working with basic linguistic constructions such as n-grams and skipgrams in a quick and memory-efficient way. 45 | * [ucto](https://github.com/proycon/ucto) - Unicode-aware regular-expression based tokenizer for various languages. Tool and C++ library. Supports FoLiA format. 46 | * [libfolia](https://github.com/proycon/libfolia) - C++ library for the [FoLiA format](https://proycon.github.io/folia) 47 | * [frog](https://github.com/proycon/frog) - Memory-based NLP suite developed for Dutch: PoS tagger, lemmatiser, dependency parser, NER, shallow parser, morphological analyzer. 48 | * [MeTA](https://github.com/meta-toolkit/meta) - [MeTA : ModErn Text Analysis](https://meta-toolkit.org/) is a C++ Data Sciences Toolkit that facilitates mining big text data. 49 | * [fastText](https://github.com/facebookresearch/fastText) - C++ library for fast text representation and classification. 50 | 51 | #### Speech Recognition 52 | * [Kaldi](http://kaldi.sourceforge.net/) - Kaldi is a toolkit for speech recognition written in C++ and licensed under the Apache License v2.0. Kaldi is intended for use by speech recognition researchers. 53 | 54 | 55 | #### Sequence Analysis 56 | * [ToPS](https://github.com/ayoshiaki/tops) - This is an objected-oriented framework that facilitates the integration of probabilistic models for sequences over a user defined alphabet. 57 | 58 | 59 | ## Javascript 60 | 61 | 62 | #### Natural Language Processing 63 | 64 | * [Twitter-text](https://github.com/twitter/twitter-text) - A JavaScript implementation of Twitter's text processing library 65 | * [NLP.js](https://github.com/nicktesla/nlpjs) - NLP utilities in javascript and coffeescript 66 | * [natural](https://github.com/NaturalNode/natural) - General natural language facilities for node 67 | * [Knwl.js](https://github.com/loadfive/Knwl.js) - A Natural Language Processor in JS 68 | * [Retext](http://github.com/wooorm/retext) - Extensible system for analyzing and manipulating natural language 69 | * [TextProcessing](https://www.mashape.com/japerk/text-processing/support) - Sentiment analysis, stemming and lemmatization, part-of-speech tagging and chunking, phrase extraction and named entity recognition. 70 | * [NLP Compromise](https://github.com/spencermountain/nlp_compromise) - Natural Language processing in the browser 71 | 72 | 73 | 74 | #### Data Analysis / Data Visualization 75 | 76 | * [D3.js](http://d3js.org/) 77 | * [High Charts](http://www.highcharts.com/) 78 | * [NVD3.js](http://nvd3.org/) 79 | * [dc.js](http://dc-js.github.io/dc.js/) 80 | * [chartjs](http://www.chartjs.org/) 81 | * [dimple](http://dimplejs.org/) 82 | * [amCharts](http://www.amcharts.com/) 83 | * [D3xter](https://github.com/NathanEpstein/D3xter) - Straight forward plotting built on D3 84 | * [statkit](https://github.com/rigtorp/statkit) - Statistics kit for JavaScript 85 | * [science.js](https://github.com/jasondavies/science.js/) - Scientific and statistical computing in JavaScript. 86 | * [Z3d](https://github.com/NathanEpstein/Z3d) - Easily make interactive 3d plots built on Three.js 87 | * [Sigma.js](http://sigmajs.org/) - JavaScript library dedicated to graph drawing. 88 | * [C3.js](http://c3js.org/)- customizable library based on D3.js for easy chart drawing. 89 | 90 | 91 | #### General-Purpose Machine Learning 92 | 93 | * [Clusterfck](http://harthur.github.io/clusterfck/) - Agglomerative hierarchical clustering implemented in Javascript for Node.js and the browser 94 | * [Clustering.js](https://github.com/tixz/clustering.js) - Clustering algorithms implemented in Javascript for Node.js and the browser 95 | * [Decision Trees](https://github.com/serendipious/nodejs-decision-tree-id3) - NodeJS Implementation of Decision Tree using ID3 Algorithm 96 | * [figue](http://code.google.com/p/figue/) - K-means, fuzzy c-means and agglomerative clustering 97 | * [Node-fann](https://github.com/rlidwka/node-fann) - FANN (Fast Artificial Neural Network Library) bindings for Node.js 98 | * [Kmeans.js](https://github.com/tixz/kmeans.js) - Simple Javascript implementation of the k-means algorithm, for node.js and the browser 99 | * [LDA.js](https://github.com/primaryobjects/lda) - LDA topic modeling for node.js 100 | * [Learning.js](https://github.com/yandongliu/learningjs) - Javascript implementation of logistic regression/c4.5 decision tree 101 | * [Machine Learning](http://joonku.com/project/machine_learning) - Machine learning library for Node.js 102 | * [mil-tokyo](https://github.com/mil-tokyo) - List of several machine learning libraries 103 | * [Node-SVM](https://github.com/nicolaspanel/node-svm) - Support Vector Machine for nodejs 104 | * [Bayesian-Bandit](https://github.com/omphalos/bayesian-bandit.js) - Bayesian bandit implementation for Node and the browser. 105 | * [Synaptic](https://github.com/cazala/synaptic) - Architecture-free neural network library for node.js and the browser 106 | * [kNear](https://github.com/NathanEpstein/kNear) - JavaScript implementation of the k nearest neighbors algorithm for supervised learning 107 | * [NeuralN](https://github.com/totemstech/neuraln) - C++ Neural Network library for Node.js. It has advantage on large dataset and multi-threaded training. 108 | * [kalman](https://github.com/itamarwe/kalman) - Kalman filter for Javascript. 109 | * [shaman](https://github.com/dambalah/shaman) - node.js library with support for both simple and multiple linear regression. 110 | 111 | 112 | #### Misc 113 | 114 | * [sylvester](https://github.com/jcoglan/sylvester) - Vector and Matrix math for JavaScript. 115 | * [simple-statistics](https://github.com/tmcw/simple-statistics) - A JavaScript implementation of descriptive, regression, and inference statistics. Implemented in literate JavaScript with no dependencies, designed to work in all modern browsers (including IE) as well as in node.js. 116 | * [regression-js](https://github.com/Tom-Alexander/regression-js) - A javascript library containing a collection of least squares fitting methods for finding a trend in a set of data. 117 | * [Lyric](https://github.com/flurry/Lyric) - Linear Regression library. 118 | * [GreatCircle](https://github.com/mwgg/GreatCircle) - Library for calculating great circle distance. 119 | 120 | ## Data Visualization 121 | *Data visualization tools for the web.* 122 | 123 | * [d3](https://github.com/mbostock/d3) - A JavaScript visualization library for HTML and SVG. 124 | * [metrics-graphics](https://github.com/mozilla/metrics-graphics) - A library optimized for concise, principled data graphics and layouts. 125 | * [pykcharts.js](https://github.com/pykih/PykCharts.js) - Well designed d3.js charting without the complexity of d3.js. 126 | * [three.js](https://github.com/mrdoob/three.js) - JavaScript 3D library. 127 | * [Chart.js](https://github.com/nnnick/Chart.js) - Simple HTML5 Charts using the tag. 128 | * [paper.js](https://github.com/paperjs/paper.js) - The Swiss Army Knife of Vector Graphics Scripting – Scriptographer ported to JavaScript and the browser, using HTML5 Canvas. 129 | * [fabric.js](https://github.com/kangax/fabric.js) - Javascript Canvas Library, SVG-to-Canvas (& canvas-to-SVG) Parser. 130 | * [peity](https://github.com/benpickles/peity) - Progressive bar, line and pie charts. 131 | * [raphael](https://github.com/DmitryBaranovskiy/raphael) - JavaScript Vector Library. 132 | * [echarts](https://github.com/ecomfe/echarts) - Enterprise Charts. 133 | * [vis](https://github.com/almende/vis) - Dynamic, browser-based visualization library. 134 | * [two.js](https://github.com/jonobr1/two.js) - A renderer agnostic two-dimensional drawing api for the web. 135 | * [g.raphael](https://github.com/DmitryBaranovskiy/g.raphael) - Charts for Raphaël. 136 | * [sigma.js](https://github.com/jacomyal/sigma.js) - A JavaScript library dedicated to graph drawing. 137 | * [arbor](https://github.com/samizdatco/arbor) - A graph visualization library using web workers and jQuery. 138 | * [cubism](https://github.com/square/cubism) - A D3 plugin for visualizing time series. 139 | * [dc.js](https://github.com/dc-js/dc.js) - Multi-Dimensional charting built to work natively with crossfilter rendered with d3.js 140 | * [vega](https://github.com/trifacta/vega) - A visualization grammar. 141 | * [envisionjs](https://github.com/HumbleSoftware/envisionjs) - Dynamic HTML5 visualization. 142 | * [rickshaw](https://github.com/shutterstock/rickshaw) - JavaScript toolkit for creating interactive real-time graphs. 143 | * [flot](https://github.com/flot/flot) - Attractive JavaScript charts for jQuery. 144 | * [morris.js](https://github.com/morrisjs/morris.js) - Pretty time-series line graphs. 145 | * [nvd3](https://github.com/novus/nvd3) - Build re-usable charts and chart components for d3.js 146 | * [svg.js](https://github.com/wout/svg.js) - A lightweight library for manipulating and animating SVG. 147 | * [heatmap.js](https://github.com/pa7/heatmap.js) - JavaScript Library for HTML5 canvas based heatmaps. 148 | * [jquery.sparkline](https://github.com/gwatts/jquery.sparkline) - A plugin for the jQuery javascript library to generate small sparkline charts directly in the browser. 149 | * [xCharts](https://github.com/tenxer/xCharts) - A D3-based library for building custom charts and graphs. 150 | * [trianglify](https://github.com/qrohlf/trianglify) - Low poly style background generator with d3.js 151 | * [d3-cloud](https://github.com/jasondavies/d3-cloud) - Create word clouds in JavaScript. 152 | * [d4](https://github.com/heavysixer/d4) - A friendly reusable charts DSL for D3. 153 | * [dimple.js](http://dimplejs.org) - Easy charts for business analytics powered by d3 154 | * [chartist-js](https://github.com/gionkunz/chartist-js) - Simple responsive charts. 155 | * [epoch](https://github.com/fastly/epoch) - A general purpose real-time charting library. 156 | * [c3](https://github.com/masayuki0812/c3) - D3-based reusable chart library. 157 | * [BabylonJS](https://github.com/BabylonJS/Babylon.js) - A framework for building 3D games with HTML 5 and WebGL. 158 | 159 | There're also some great commercial libraries, like [amchart](http://www.amcharts.com/), [plotly](https://www.plot.ly/), and [highchart](http://www.highcharts.com/). 160 | 161 | ## Numerical - C 162 |
  • apophenia - A library for statistical and scientific computing. GNU GPL2.1 with some exceptions.
  • 163 |
  • ATLAS - Automatically Tuned Linear Algebra Software. 3-clause BSD.
  • 164 |
  • BLAS - Basic Linear Algebra Subprograms; a set of routines that provide vector and matrix operations. BLAS license
  • 165 |
  • CRlibm - Correctly Rounded mathematical library; a modern implementation of a range of numeric routines. GN LGPL3.
  • 166 |
  • Cuba - A library for multidimensional numerical integration. GNU LGPL3.
  • 167 |
  • FFTW - The Fastest Fourier Transform in the West; a highly-optimized fast Fourier transform routine. GNU GPL2.1.
  • 168 |
  • FLINT - Fast Library for Number Theory; a library supporting arithmetic with numbers, polynomials, power series and matrices, among others. GNU GPL2.1.
  • 169 |
  • GLPK - GNU Linear Programming Kit; a package designed for solving large-scale linear programming, mixed integer programming and other related problems. GNU GPL3.
  • 170 |
  • GMP - GNU Multple Precision Arithmetic Library; a library for arbitrary-precision arithmetic. GNU GPL2.1 and GNU LGPL2.1.
  • 171 |
  • GNU MPC - A library for complex number arithmetic. GNU LGPL3.
  • 172 |
  • GNU MPFR - A library for arbitrary-precision floating-point arithmetic. GNU LGPL2.1.
  • 173 |
  • GNU MPRIA - A portable mathematics library for multi-precision rational interval arithmetic. GNU GPL3.
  • 174 |
  • GSL - The GNU Scientific Library; a sophisticated numerical library. GNU GPL3.
  • 175 |
  • KISS FFT - A very simple fast Fourier transform library. 3-clause BSD.
  • 176 |
  • LAPACKE - A C interface to LAPACK. 3-clause BSD.
  • 177 |
  • PARI/GP - A computer algebra system for number theory; includes a compiler to C. GNU GPL3.
  • 178 |
  • PETSc - A suite of data structures and routines for scalable parallel solution of scientific applications modelled by partial differential equations. FreeBSD.
  • 179 |
  • SLEPc - A software library for the solution of large, sparse eigenvalue problems on parallel computers. GNU LGPL3.
  • 180 |
  • Yeppp! - Very fast, SIMD-optimized mathematical library. 3-clause BSD.
  • 181 | 182 | # C++ 183 | ## Artificial Intelligence 184 | 185 | * [btsk](https://github.com/aigamedev/btsk) - Game Behavior Tree Starter Kit. [zlib] 186 | * [Evolving Objects](http://eodev.sourceforge.net/) - A template-based, ANSI-C++ evolutionary computation library which helps you to write your own stochastic optimization algorithms insanely fast. [LGPL] 187 | * [Neu](https://github.com/andrometa/neu) - A C++ 11 framework, collection of programming languages, and multipurpose software system designed for: the creation of artificial intelligence applications. [BSD] 188 | 189 | ## Biology 190 | *Bioinformatics, Genomics, Biotech* 191 | 192 | * [libsequence](http://molpopgen.github.io/libsequence/) - A C++ library for representing and analyzing population genetics data. [GPL] 193 | * [SeqAn](http://www.seqan.de/) - Algorithms and data structures for the analysis of sequences with the focus on biological data. [BSD/3-clause] 194 | * [Vcflib](https://github.com/ekg/vcflib) - A C++ library for parsing and manipulating VCF files. [MIT] 195 | * [Wham](https://github.com/jewmanchue/wham) - Structural variants (SVs) in Genomes by directly applying association tests to BAM files. [MIT] 196 | 197 | ## Machine Learning 198 | 199 | * [CCV](https://github.com/liuliu/ccv) - C-based/Cached/Core Computer Vision Library, A Modern Computer Vision Library. [BSD] 200 | * [MeTA](https://github.com/meta-toolkit/meta) - A modern C++ data sciences toolkit. [MIT] [website](https://meta-toolkit.org/) 201 | * [Minerva](https://github.com/minerva-developers/minerva) - A fast and flexible system for deep learning. [Apache2] 202 | * [mlpack](http://www.mlpack.org/) - A scalable c++ machine learning library. [LGPLv3] 203 | * [Recommender](https://github.com/GHamrouni/Recommender) - C library for product recommendations/suggestions using collaborative filtering (CF). [BSD] 204 | * [SHOGUN](https://github.com/shogun-toolbox/shogun) - The Shogun Machine Learning Toolbox. [GPLv3] 205 | * [sofia-ml](https://code.google.com/p/sofia-ml/) - The suite of fast incremental algorithms for machine learning. [Apache2] 206 | 207 | ## Math 208 | 209 | * [Apophenia](https://github.com/b-k/apophenia) - A C library for statistical and scientific computing [GPL2] 210 | * [Armadillo](http://arma.sourceforge.net/) - A high quality C++ linear algebra library, aiming towards a good balance between speed and ease of use. The syntax (API) is deliberately similar to Matlab. [MPL2] 211 | * [blaze](https://code.google.com/p/blaze-lib/) - high-performance C++ math library for dense and sparse arithmetic. [BSD] 212 | * [Boost.Multiprecision](http://www.boost.org/doc/libs/master/libs/multiprecision/doc/html/index.html) - provides higher-range/precision integer, rational and floating-point types in C++, header-only or with GMP/MPFR/LibTomMath backends. [Boost] 213 | * [ceres-solver](http://ceres-solver.org/) - C++ library for modeling and solving large complicated nonlinear least squares problems from google. [BSD] 214 | * [CGal](http://www.cgal.org/) - Collection of efficient and reliable geometric algorithms. [LGPL&GPL] 215 | * [cml](http://cmldev.net/) - free C++ math library for games and graphics. [Boost] 216 | * [GLM](https://github.com/g-truc/glm) - Header-only C++ math library that matches and inter-operates with OpenGL's GLSL math. [MIT] 217 | * [GMTL](http://ggt.sourceforge.net/) - Graphics Math Template Library is a collection of tools implementing Graphics primitives in generalized ways. [GPL2] 218 | * [GMP](https://gmplib.org/) - A C/C++ library for arbitrary precision arithmetic, operating on signed integers, rational numbers, and floating-point numbers. [LGPL3 & GPL2] 219 | * [MIRACL](https://github.com/CertiVox/MIRACL) - A Multiprecision Integer and Rational Arithmetic Cryptographic Library. [AGPL] 220 | * [LibTomMath](https://github.com/libtom/libtommath) - A free open source portable number theoretic multiple-precision integer library written entirely in C. [PublicDomain & WTFPL] [website](http://www.libtom.net/) 221 | * [QuantLib](https://github.com/lballabio/quantlib) - A free/open-source library for quantitative finance. [Modified BSD] [website](http://quantlib.org/) 222 | 223 | ## Scientific Computing 224 | 225 | * [FFTW](http://www.fftw.org/) - A C library for computing the DFT in one or more dimensions. [GPL] 226 | * [GSL](http://www.gnu.org/software/gsl/) - GNU scientific library. [GPL] 227 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Machine Learning for iOS 2 | 3 | **Last Update: January 12, 2018.** 4 | 5 | Curated list of resources for iOS developers in following topics: 6 | 7 | - [Core ML](#coreml) 8 | - [Machine Learning Libraries](#gpmll) 9 | - [Deep Learning Libraries](#dll) 10 | - [Deep Learning: Model Compression](#dlmc) 11 | - [Computer Vision](#cv) 12 | - [Natural Language Processing](#nlp) 13 | - [Speech Recognition (TTS) and Generation (STT)](#tts) 14 | - [Text Recognition (OCR)](#ocr) 15 | - [Other AI](#ai) 16 | - [Machine Learning Web APIs](#web) 17 | - [Opensource ML Applications](#mlapps) 18 | - [Game AI](#gameai) 19 | - Other related staff 20 | - [Linear algebra](#la) 21 | - [Statistics, random numbers](#stat) 22 | - [Mathematical optimization](#mo) 23 | - [Feature extraction](#fe) 24 | - [Data Visualization](#dv) 25 | - [Bioinformatics (kinda)](#bio) 26 | - [Big Data (not really)](#bd) 27 | - [iOS ML Blogs](#blogs) 28 | - [Mobile ML books](#books) 29 | - [GPU Computing Blogs](#gpublogs) 30 | - [Learn Machine Learning](#learn) 31 | - [Other Lists](#lists) 32 | 33 | Most of the de-facto standard tools in AI-related domains are written in iOS-unfriendly languages (Python/Java/R/Matlab) so finding something appropriate for your iOS application may be a challenging task. 34 | 35 | This list consists mainly of libraries written in Objective-C, Swift, C, C++, JavaScript and some other languages that can be easily ported to iOS. Also, I included links to some relevant web APIs, blog posts, videos and learning materials. 36 | 37 | Resources are sorted alphabetically or randomly. The order doesn't reflect my personal preferences or anything else. Some of the resources are awesome, some are great, some are fun, and some can serve as an inspiration. 38 | 39 | Have fun! 40 | 41 | **Pull-requests are welcome [here](https://github.com/alexsosn/iOS_ML)**. 42 | 43 | # Core ML 44 | 45 | * [coremltools](https://pypi.python.org/pypi/coremltools) is a Python package. It contains converters from some popular machine learning libraries to the Apple format. 46 | * [Core ML](https://developer.apple.com/documentation/coreml) is an Apple framework to run inference on device. It is highly optimized to Apple hardware. 47 | 48 | Currently CoreML is compatible (partially) with the following machine learning packages via [coremltools python package](https://apple.github.io/coremltools/): 49 | 50 | - [Caffe](http://caffe.berkeleyvision.org) 51 | - [Keras](https://keras.io/) 52 | - [libSVM](https://www.csie.ntu.edu.tw/~cjlin/libsvm/) 53 | - [scikit-learn](http://scikit-learn.org/) 54 | - [XGBoost](https://xgboost.readthedocs.io/en/latest/) 55 | 56 | Third-party converters to [CoreML format](https://apple.github.io/coremltools/coremlspecification/) are also available for some models from: 57 | 58 | - [Turicreate](https://github.com/apple/turicreate) 59 | - [TensorFlow](https://github.com/tf-coreml/tf-coreml) 60 | - [MXNet](https://github.com/apache/incubator-mxnet/tree/master/tools/coreml) 61 | - [Torch7](https://github.com/prisma-ai/torch2coreml) 62 | - [CatBoost](https://tech.yandex.com/catboost/doc/dg/features/export-model-to-core-ml-docpage/) 63 | 64 | There are many curated lists of pre-trained neural networks in Core ML format: [\[1\]](https://github.com/SwiftBrain/awesome-CoreML-models), [\[2\]](https://github.com/cocoa-ai/ModelZoo), [\[3\]](https://github.com/likedan/Awesome-CoreML-Models). 65 | 66 | Core ML currently doesn't support training models, but still, you can replace model by downloading a new one from a server in runtime. [Here is a demo](https://github.com/zedge/DynamicCoreML) of how to do it. It uses generator part of MNIST GAN as Core ML model. 67 | 68 | # General-Purpose Machine Learning Libraries 69 |

    70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 142 | 160 | 161 | 162 | 163 | 164 | 165 | 166 | 167 | 174 | 175 | 176 | 177 | 178 | 179 | 180 | 181 | 182 | 183 | 184 | 185 | 186 | 187 | 188 | 189 | 202 | 203 | 204 | 205 | 206 | 207 | 208 | 209 | 217 | 218 | 219 | 220 | 221 | 222 | 223 | 224 | 225 | 226 | 227 | 228 | 229 | 230 | 231 | 232 | 247 | 248 | 249 | 250 | 251 | 252 | 253 | 254 | 271 | 272 | 273 | 274 | 275 | 276 | 277 | 278 | 311 | 312 | 313 | 314 | 315 | 316 | 317 | 318 | 333 | 334 | 335 | 336 | 337 | 338 | 339 | 340 | 351 | 352 | 353 | 354 | 355 | 356 |
    LibraryAlgorithmsLanguageLicenseCodeDependency manager
    AIToolbox 84 |
      85 |
    • Graphs/Trees
    • 86 |
        87 |
      • Depth-first search
      • 88 |
      • Breadth-first search
      • 89 |
      • Hill-climb search
      • 90 |
      • Beam Search
      • 91 |
      • Optimal Path search
      • 92 |
      93 |
    • Alpha-Beta (game tree)
    • 94 |
    • Genetic Algorithms
    • 95 |
    • Constraint Propogation
    • 96 |
    • Linear Regression
    • 97 |
    • Non-Linear Regression
    • 98 |
        99 |
      • parameter-delta
      • 100 |
      • Gradient-Descent
      • 101 |
      • Gauss-Newton
      • 102 |
      103 |
    • Logistic Regression
    • 104 |
    • Neural Networks
    • 105 |
        106 |
      • multiple layers, several non-linearity models
      • 107 |
      • on-line and batch training
      • 108 |
      • feed-forward or simple recurrent layers can be mixed in one network
      • 109 |
      • LSTM network layer implemented - needs more testing
      • 110 |
      • gradient check routines
      • 111 |
      112 |
    • Support Vector Machine
    • 113 |
    • K-Means
    • 114 |
    • Principal Component Analysis
    • 115 |
    • Markov Decision Process
    • 116 |
        117 |
      • Monte-Carlo (every-visit, and first-visit)
      • 118 |
      • SARSA
      • 119 |
      120 |
    • Single and Multivariate Gaussians
    • 121 |
    • Mixture Of Gaussians
    • 122 |
    • Model validation
    • 123 |
    • Deep Network
    • 124 |
        125 |
      • Convolution layers
      • 126 |
      • Pooling layers
      • 127 |
      • Fully-connected NN layers
      • 128 |
      129 |
    130 |
    SwiftApache 2.0

    GitHub

    138 | 139 | 140 |
    dlib
    141 |
    143 |
      144 |
    • Deep Learning
    • 145 |
    • Support Vector Machines
    • 146 |
    • Reduced-rank methods for large-scale classification and regression
    • 147 |
    • Relevance vector machines for classification and regression
    • 148 |
    • A Multiclass SVM
    • 149 |
    • Structural SVM
    • 150 |
    • A large-scale SVM-Rank
    • 151 |
    • An online kernel RLS regression
    • 152 |
    • An online SVM classification algorithm
    • 153 |
    • Semidefinite Metric Learning
    • 154 |
    • An online kernelized centroid estimator/novelty detector and offline support vector one-class classification
    • 155 |
    • Clustering algorithms: linear or kernel k-means, Chinese Whispers, and Newman clustering
    • 156 |
    • Radial Basis Function Networks
    • 157 |
    • Multi layer perceptrons
    • 158 |
    159 |
    C++BoostGitHub
    FANN 168 |
      169 |
    • Multilayer Artificial Neural Network
    • 170 |
    • Backpropagation (RPROP, Quickprop, Batch, Incremental)
    • 171 |
    • Evolving topology training
    • 172 |
    173 |
    C++GNU LGPL 2.1GitHubCocoa Pods
    lbimprovedk-nearest neighbors and Dynamic Time WarpingC++Apache 2.0GitHub
    MAChineLearning 190 |
      191 |
    • Neural Networks
    • 192 |
        193 |
      • Activation functions: Linear, ReLU, Step, sigmoid, TanH
      • 194 |
      • Cost functions: Squared error, Cross entropy
      • 195 |
      • Backpropagation: Standard, Resilient (a.k.a. RPROP).
      • 196 |
      • Training by sample or by batch.
      • 197 |
      198 |
    • Bag of Words
    • 199 |
    • Word Vectors
    • 200 |
    201 |
    Objective-CBSD 3-clauseGitHub

    MLKit
    210 |
      211 |
    • Linear Regression: simple, ridge, polynomial
    • 212 |
    • Multi-Layer Perceptron, & Adaline ANN Architectures
    • 213 |
    • K-Means Clustering
    • 214 |
    • Genetic Algorithms
    • 215 |
    216 |
    SwiftMITGitHubCocoa Pods

    Mendel
    Evolutionary/genetic algorithmsSwift?GitHub
    multilinear-math 233 |
      234 |
    • Linear algebra and tensors
    • 235 |
    • Principal component analysis
    • 236 |
    • Multilinear subspace learning algorithms for dimensionality reduction
    • 237 |
    • Linear and logistic regression
    • 238 |
    • Stochastic gradient descent
    • 239 |
    • Feedforward neural networks
    • 240 |
        241 |
      • Sigmoid
      • 242 |
      • ReLU
      • 243 |
      • Softplus activation functions
      • 244 |
      245 |
    246 |
    SwiftApache 2.0GitHub Swift Package Manager
    OpenCV 255 |
      256 |
    • Multi-Layer Perceptrons
    • 257 |
    • Boosted tree classifier
    • 258 |
    • decision tree
    • 259 |
    • Expectation Maximization
    • 260 |
    • K-Nearest Neighbors
    • 261 |
    • Logistic Regression
    • 262 |
    • Bayes classifier
    • 263 |
    • Random forest
    • 264 |
    • Support Vector Machines
    • 265 |
    • Stochastic Gradient Descent SVM classifier
    • 266 |
    • Grid search
    • 267 |
    • Hierarchical k-means
    • 268 |
    • Deep neural networks
    • 269 |
    270 |
    C++3-clause BSDGitHub Cocoa Pods

    Shark
    279 |
      280 |
    • Supervised:
    • 281 |
        282 |
      • Linear discriminant analysis (LDA)
      • 283 |
      • Fisher–LDA
      • 284 |
      • Linear regression
      • 285 |
      • SVMs
      • 286 |
      • FF NN
      • 287 |
      • RNN
      • 288 |
      • Radial basis function networks
      • 289 |
      • Regularization networks
      • 290 |
      • Gaussian processes for regression
      • 291 |
      • Iterative nearest neighbor classification and regression
      • 292 |
      • Decision trees
      • 293 |
      • Random forest
      • 294 |
      295 |
    • Unsupervised:
    • 296 |
        297 |
      • PCA
      • 298 |
      • Restricted Boltzmann machines
      • 299 |
      • Hierarchical clustering
      • 300 |
      • Data structures for efficient distance-based clustering
      • 301 |
      302 |
    • Optimization:
    • 303 |
        304 |
      • Evolutionary algorithms
      • 305 |
      • Single-objective optimization (e.g., CMA–ES)
      • 306 |
      • Multi-objective optimization
      • 307 |
      • Basic linear algebra and optimization algorithms
      • 308 |
      309 |
    310 |
    C++GNU LGPLGitHub Cocoa Pods

    YCML
    319 |
      320 |
    • Gradient Descent Backpropagation
    • 321 |
    • Resilient Backpropagation (RProp)
    • 322 |
    • Extreme Learning Machines (ELM)
    • 323 |
    • Forward Selection using Orthogonal Least Squares (for RBF Net), also with the PRESS statistic
    • 324 |
    • Binary Restricted Boltzmann Machines (CD & PCD)
    • 325 |
    • Optimization algorithms:
    • 326 |
        327 |
      • Gradient Descent (Single-Objective, Unconstrained)
      • 328 |
      • RProp Gradient Descent (Single-Objective, Unconstrained)
      • 329 |
      • NSGA-II (Multi-Objective, Constrained)
      • 330 |
      331 |
    332 |
    Objective-CGNU GPL 3.0GitHub

    Kalvar Lin's libraries
    341 | 350 | Objective-CMITGitHub
    357 | 358 | 359 | **Multilayer perceptron implementations:** 360 | 361 | - [Brain.js](https://github.com/harthur/brain) - JS 362 | - [SNNeuralNet](https://github.com/devongovett/SNNeuralNet) - Objective-C port of brain.js 363 | - [MLPNeuralNet](https://github.com/nikolaypavlov/MLPNeuralNet) - Objective-C, Accelerate 364 | - [Swift-AI](https://github.com/Swift-AI/Swift-AI) - Swift 365 | - [SwiftSimpleNeuralNetwork](https://github.com/davecom/SwiftSimpleNeuralNetwork) - Swift 366 | -
    ios-BPN-NeuralNetwork - Objective-C 367 | - ios-Multi-Perceptron-NeuralNetwork- Objective-C 368 | - ios-KRDelta - Objective-C 369 | - [ios-KRPerceptron](https://github.com/Kalvar/ios-KRPerceptron) - Objective-C 370 | 371 | # Deep Learning Libraries: 372 | 373 | ### On-Device training and inference 374 | 375 | * [Birdbrain](https://github.com/jordenhill/Birdbrain) - RNNs and FF NNs on top of Metal and Accelerate. Not ready for production. 376 | * [BrainCore](https://github.com/aleph7/BrainCore) - simple but fast neural network framework written in Swift. It uses Metal framework to be as fast as possible. ReLU, LSTM, L2 ... 377 | * [Caffe](http://caffe.berkeleyvision.org) - A deep learning framework developed with cleanliness, readability, and speed in mind. [GitHub](https://github.com/BVLC/caffe). [BSD] 378 | * [iOS port](https://github.com/aleph7/caffe) 379 | * [caffe-mobile](https://github.com/solrex/caffe-mobile) - another iOS port. 380 | * C++ examples: [Classifying ImageNet](http://caffe.berkeleyvision.org/gathered/examples/cpp_classification.html), [Extracting Features](http://caffe.berkeleyvision.org/gathered/examples/feature_extraction.html) 381 | * [Caffe iOS sample](https://github.com/noradaiko/caffe-ios-sample) 382 | * [Caffe2](https://caffe2.ai/) - a cross-platform framework made with expression, speed, and modularity in mind. 383 | * [Cocoa Pod](https://github.com/RobertBiehl/caffe2-ios) 384 | * [iOS demo app](https://github.com/KleinYuan/Caffe2-iOS) 385 | * [Convnet.js](http://cs.stanford.edu/people/karpathy/convnetjs/) - ConvNetJS is a Javascript library for training Deep Learning models by [Andrej Karpathy](https://twitter.com/karpathy). [GitHub](https://github.com/karpathy/convnetjs) 386 | * [ConvNetSwift](https://github.com/alexsosn/ConvNetSwift) - Swift port [work in progress]. 387 | * [Deep Belief SDK](https://github.com/jetpacapp/DeepBeliefSDK) - The SDK for Jetpac's iOS Deep Belief image recognition framework 388 | * [TensorFlow](http://www.tensorflow.org/) - an open source software library for numerical computation using data flow graphs. Nodes in the graph represent mathematical operations, while the graph edges represent the multidimensional data arrays (tensors) communicated between them. The flexible architecture allows you to deploy computation to one or more CPUs or GPUs in a desktop, server, or mobile device with a single API. 389 | * [iOS examples](https://github.com/tensorflow/tensorflow/tree/master/tensorflow/contrib/ios_examples) 390 | * [another example](https://github.com/hollance/TensorFlow-iOS-Example) 391 | * [Perfect-TensorFlow](https://github.com/PerfectlySoft/Perfect-TensorFlow) - TensorFlow binding for [Perfect](http://perfect.org/) (server-side Swift framework). Includes only C TF API. 392 | * [tiny-dnn](https://github.com/tiny-dnn/tiny-dnn) - header only, dependency-free deep learning framework in C++11. 393 | * [iOS example](https://github.com/tiny-dnn/tiny-dnn/tree/d4fff53fa0d01f59eb162de2ec32c652a1f6f467/examples/ios) 394 | * [Torch](http://torch.ch/) is a scientific computing framework with wide support for machine learning algorithms. 395 | * [Torch4iOS](https://github.com/jhondge/torch4ios) 396 | * [Torch-iOS](https://github.com/clementfarabet/torch-ios) 397 | 398 | ### Deep Learning: Running pre-trained models on device 399 | 400 | These libraries doesn't support training, so you need to pre-train models in some ML framework. 401 | 402 | * [Bender](https://github.com/xmartlabs/Bender) - Framework for building fast NNs. Supports TensorFlow models. It uses Metal under the hood. 403 | * [Core ML](#coreml) 404 | * [DeepLearningKit](http://deeplearningkit.org/) - Open Source Deep Learning Framework from Memkite for Apple's tvOS, iOS and OS X. 405 | * [Espresso](https://github.com/codinfox/espresso) - A minimal high performance parallel neural network framework running on iOS. 406 | * [Forge](https://github.com/hollance/Forge) - A neural network toolkit for Metal. 407 | * [Keras.js](https://transcranial.github.io/keras-js/#/) - run [Keras](https://keras.io/) models in a web view. 408 | * [KSJNeuralNetwork](https://github.com/woffle/KSJNeuralNetwork) - A Neural Network Inference Library Built atop BNNS and MPS 409 | * [Converter for Torch models](https://github.com/woffle/torch2ios) 410 | * [MXNet](https://mxnet.incubator.apache.org/) - MXNet is a deep learning framework designed for both efficiency and flexibility. 411 | * [Deploying pre-trained mxnet model to a smartphone](https://mxnet.incubator.apache.org/how_to/smart_device.html) 412 | * [Quantized-CNN](https://github.com/jiaxiang-wu/quantized-cnn) - compressed convolutional neural networks for Mobile Devices 413 | * [WebDNN](https://mil-tokyo.github.io/webdnn/) - You can run deep learning model in a web view if you want. Three modes: WebGPU acceleration, WebAssembly acceleration and pure JS (on CPU). No training, inference only. 414 | 415 | ### Deep Learning: Low-level routines libraries 416 | 417 | * [BNNS](https://developer.apple.com/reference/accelerate/1912851-bnns) - Apple Basic neural network subroutines (BNNS) is a collection of functions that you use to implement and run neural networks, using previously obtained training data. 418 | * [BNNS usage examples](https://github.com/shu223/iOS-10-Sampler) in iOS 10 sampler. 419 | * [An example](https://github.com/bignerdranch/bnns-cocoa-example) of a neural network trained by tensorflow and executed using BNNS 420 | * [MetalPerformanceShaders](https://developer.apple.com/reference/metalperformanceshaders) - CNNs on GPU from Apple. 421 | * [MetalCNNWeights](https://github.com/kakugawa/MetalCNNWeights) - a Python script to convert Inception v3 for MPS. 422 | * [MPSCNNfeeder](https://github.com/kazoo-kmt/MPSCNNfeeder) - Keras to MPS models conversion. 423 | * [NNPACK](https://github.com/Maratyszcza/NNPACK) - Acceleration package for neural networks on multi-core CPUs. Prisma [uses](http://prisma-ai.com/libraries.html) this library in the mobile app. 424 | * [STEM](https://github.com/abeschneider/stem) - Swift Tensor Engine for Machine-learning 425 | * [Documentation](http://stem.readthedocs.io/en/latest/) 426 | 427 | ### Deep Learning: Model Compression 428 | 429 | * TensorFlow implementation of [knowledge distilling](https://github.com/chengshengchan/model_compression) method 430 | * [MobileNet-Caffe](https://github.com/shicai/MobileNet-Caffe) - Caffe Implementation of Google's MobileNets 431 | * [keras-surgeon](https://github.com/BenWhetton/keras-surgeon) - Pruning for trained Keras models. 432 | 433 | 434 | # Computer Vision 435 | 436 | 437 | * [ccv](http://libccv.org) - C-based/Cached/Core Computer Vision Library, A Modern Computer Vision Library 438 | * [iOS demo app](https://github.com/liuliu/klaus) 439 | * [OpenCV](http://opencv.org) – Open Source Computer Vision Library. [BSD] 440 | * [OpenCV crash course](http://www.pyimagesearch.com/free-opencv-crash-course/) 441 | * [OpenCVSwiftStitch](https://github.com/foundry/OpenCVSwiftStitch) 442 | * [Tutorial: using and building openCV on iOS devices](http://maniacdev.com/2011/07/tutorial-using-and-building-opencv-open-computer-vision-on-ios-devices) 443 | * [A Collection of OpenCV Samples For iOS](https://github.com/woffle/OpenCV-iOS-Demos) 444 | * [OpenFace](https://github.com/TadasBaltrusaitis/OpenFace) – a state-of-the art open source tool intended for facial landmark detection, head pose estimation, facial action unit recognition, and eye-gaze estimation. 445 | * [iOS port](https://github.com/FaceAR/OpenFaceIOS) 446 | * [iOS demo](https://github.com/FaceAR/OpenFaceIOS) 447 | * [trackingjs](http://trackingjs.com/) – Object tracking in JS 448 | * [Vision](https://developer.apple.com/documentation/vision) is an Apple framework for computer vision. 449 | 450 | # Natural Language Processing 451 | 452 | 453 | * [CoreLinguistics](https://github.com/rxwei/CoreLinguistics) - POS tagging (HMM), ngrams, Naive Bayes, IBM alignment models. 454 | * [GloVe](https://github.com/rxwei/GloVe-swift) Swift package. Vector words representations. 455 | * [NSLinguisticTagger](http://nshipster.com/nslinguistictagger/) 456 | * [Parsimmon](https://github.com/ayanonagon/Parsimmon) 457 | * [Twitter text](https://github.com/twitter/twitter-text-objc) - 458 | An Objective-C implementation of Twitter's text processing library. The library includes methods for extracting user names, mentions headers, hashtags, and more – all the tweet specific language syntax you could ever want. 459 | * [Verbal expressions for Swift](https://github.com/VerbalExpressions/SwiftVerbalExpressions), like regexps for humans. 460 | * [Word2Vec](https://code.google.com/p/word2vec/) - Original C implementation of Word2Vec Deep Learning algorithm. Works on iPhone like a charm. 461 | 462 | # Speech Recognition (TTS) and Generation (STT) 463 | 464 | 465 | * [Kaldi-iOS framework](http://keenresearch.com/) - on-device speech recognition using deep learning. 466 | * [Proof of concept app](https://github.com/keenresearch/kaldi-ios-poc) 467 | * [MVSpeechSynthesizer](https://github.com/vimalmurugan89/MVSpeechSynthesizer) 468 | * [OpenEars™: free speech recognition and speech synthesis for the iPhone](http://www.politepix.com/openears/) - OpenEars™ makes it simple for you to add offline speech recognition and synthesized speech/TTS to your iPhone app quickly and easily. It lets everyone get the great results of using advanced speech UI concepts like statistical language models and finite state grammars in their app, but with no more effort than creating an NSArray or NSDictionary. 469 | * [Tutorial (Russian)](http://habrahabr.ru/post/237589/) 470 | * [TLSphinx](https://github.com/tryolabs/TLSphinx), [Tutorial](http://blog.tryolabs.com/2015/06/15/tlsphinx-automatic-speech-recognition-asr-in-swift/) 471 | 472 | # Text Recognition (OCR) 473 | 474 | 475 | * [ocrad.js](https://github.com/antimatter15/ocrad.js) - JS OCR 476 | * **Tesseract** 477 | * [Install and Use Tesseract on iOS](http://lois.di-qual.net/blog/install-and-use-tesseract-on-ios-with-tesseract-ios/) 478 | * [tesseract-ios-lib](https://github.com/ldiqual/tesseract-ios-lib) 479 | * [tesseract-ios](https://github.com/ldiqual/tesseract-ios) 480 | * [Tesseract-OCR-iOS](https://github.com/gali8/Tesseract-OCR-iOS) 481 | * [OCR-iOS-Example](https://github.com/robmathews/OCR-iOS-Example) 482 | 483 | # Other AI 484 | 485 | 486 | * [Axiomatic](https://github.com/JadenGeller/Axiomatic) - Swift unification framework for logic programming. 487 | * [Build Your Own Lisp In Swift](https://github.com/hollance/BuildYourOwnLispInSwift) 488 | * [Logician](https://github.com/mdiep/Logician) - Logic programming in Swift 489 | * [Swiftlog](https://github.com/JadenGeller/Swiftlog) - A simple Prolog-like language implemented entirely in Swift. 490 | 491 | # Machine Learning Web APIs 492 | 493 | 494 | * [**IBM** Watson](http://www.ibm.com/smarterplanet/us/en/ibmwatson/developercloud/) - Enable Cognitive Computing Features In Your App Using IBM Watson's Language, Vision, Speech and Data APIs. 495 | * [Introducing the (beta) IBM Watson iOS SDK](https://developer.ibm.com/swift/2015/12/18/introducing-the-new-watson-sdk-for-ios-beta/) 496 | * [AlchemyAPI](http://www.alchemyapi.com/) - Semantic Text Analysis APIs Using Natural Language Processing. Now part of IBM Watson. 497 | * [**Microsoft** Project Oxford](https://www.projectoxford.ai/) 498 | * [**Google** Prediction engine](https://cloud.google.com/prediction/docs) 499 | * [Objective-C API](https://code.google.com/p/google-api-objectivec-client/wiki/Introduction) 500 | * [Google Translate API](https://cloud.google.com/translate/docs) 501 | * [Google Cloud Vision API](https://cloud.google.com/vision/) 502 | * [**Amazon** Machine Learning](http://aws.amazon.com/documentation/machine-learning/) - Amazon ML is a cloud-based service for developers. It provides visualization tools to create machine learning models. Obtain predictions for application using APIs. 503 | * [iOS developer guide](https://docs.aws.amazon.com/mobile/sdkforios/developerguide/getting-started-machine-learning.html). 504 | * [iOS SDK](https://github.com/aws/aws-sdk-ios) 505 | * [**PredictionIO**](https://prediction.io/) - opensource machine learning server for developers and ML engineers. Built on Apache Spark, HBase and Spray. 506 | * [Swift SDK](https://github.com/minhtule/PredictionIO-Swift-SDK) 507 | * [Tapster iOS Demo](https://github.com/minhtule/Tapster-iOS-Demo) - This demo demonstrates how to use the PredictionIO Swift SDK to integrate an iOS app with a PredictionIO engine to make your mobile app more interesting. 508 | * [Tutorial](https://github.com/minhtule/Tapster-iOS-Demo/blob/master/TUTORIAL.md) on using Swift with PredictionIO. 509 | * [**Wit.AI**](https://wit.ai/) - NLP API 510 | * [**Yandex** SpeechKit](https://tech.yandex.com/speechkit/mobilesdk/) Text-to-speech and speech-to-text for Russian language. iOS SDK available. 511 | * [**Abbyy** OCR SDK](http://www.abbyy.com/mobile-ocr/iphone-ocr/) 512 | * [**Clarifai**](http://www.clarifai.com/#) - deep learning web api for image captioning. [iOS starter project](https://github.com/Clarifai/clarifai-ios-starter) 513 | * [**MetaMind**](https://www.metamind.io/) - deep learning web api for image captioning. 514 | * [Api.AI](https://api.ai/) - Build intelligent speech interfaces 515 | for apps, devices, and web 516 | * [**CloudSight.ai**](https://cloudsight.ai/) - deep learning web API for fine grained object detection or whole screen description, including natural language object captions. [Objective-C](https://github.com/cloudsight/cloudsight-objc) API client is available. 517 | 518 | # Opensource ML Applications 519 | 520 | 521 | ### Deep Learning 522 | 523 | * [DeepDreamer](https://github.com/johndpope/deepdreamer) - Deep Dream application 524 | * [DeepDreamApp](https://github.com/johndpope/DeepDreamApp) - Deep Dream Cordova app. 525 | * [Texture Networks](https://github.com/DmitryUlyanov/texture_nets), Lua implementation 526 | * [Feedforward style transfer](https://github.com/jcjohnson/fast-neural-style), Lua implementation 527 | * [TensorFlow implementation of Neural Style](https://github.com/cysmith/neural-style-tf) 528 | * [Corrosion detection app](https://github.com/jmolayem/corrosionapp) 529 | * [ios_camera_object_detection](https://github.com/yjmade/ios_camera_object_detection) - Realtime mobile visualize based Object Detection based on TensorFlow and YOLO model 530 | * [TensorFlow MNIST iOS demo](https://github.com/mattrajca/MNIST) - Getting Started with Deep MNIST and TensorFlow on iOS 531 | * [Drummer App](https://github.com/hollance/RNN-Drummer-Swift) with RNN and Swift 532 | * [What'sThis](https://github.com/pppoe/WhatsThis-iOS) 533 | * [enVision](https://github.com/IDLabs-Gate/enVision) - Deep Learning Models for Vision Tasks on iOS\ 534 | * [GoogLeNet on iOS demo](https://github.com/krasin/MetalDetector) 535 | * [Neural style in Android](https://github.com/naman14/Arcade) 536 | * [mnist-bnns](https://github.com/paiv/mnist-bnns) - TensorFlow MNIST demo port to BNNS 537 | * [Benchmark of BNNS vs. MPS](https://github.com/hollance/BNNS-vs-MPSCNN) 538 | * [VGGNet on Metal](https://github.com/hollance/VGGNet-Metal) 539 | * A [Sudoku Solver](https://github.com/waitingcheung/deep-sudoku-solver) that leverages TensorFlow and iOS BNNS for deep learning. 540 | * [HED CoreML Implementation](https://github.com/s1ddok/HED-CoreML) is a demo with tutorial on how to use Holistically-Nested Edge Detection on iOS with CoreML and Swift 541 | 542 | ### Traditional Computer Vision 543 | 544 | * [SwiftOCR](https://github.com/garnele007/SwiftOCR) 545 | * [GrabCutIOS](https://github.com/naver/grabcutios) - Image segmentation using GrabCut algorithm for iOS 546 | 547 | ### NLP 548 | 549 | * [Classical ELIZA chatbot in Swift](https://gist.github.com/hollance/be70d0d7952066cb3160d36f33e5636f) 550 | * [InfiniteMonkeys](https://github.com/craigomac/InfiniteMonkeys) - A Keras-trained RNN to emulate the works of a famous poet, powered by BrainCore 551 | 552 | ### Other 553 | 554 | * [Swift implementation of Joel Grus's "Data Science from Scratch"](https://github.com/graceavery/LearningMachineLearning) 555 | * [Neural Network built in Apple Playground using Swift](https://github.com/Luubra/EmojiIntelligence) 556 | 557 | # Game AI 558 | 559 | 560 | * [Introduction to AI Programming for Games](http://www.raywenderlich.com/24824/introduction-to-ai-programming-for-games) 561 | * [dlib](http://dlib.net/) is a library which has many useful tools including machine learning. 562 | * [MicroPather](http://www.grinninglizard.com/MicroPather/) is a path finder and A* solver (astar or a-star) written in platform independent C++ that can be easily integrated into existing code. 563 | * Here is a [list](http://www.ogre3d.org/tikiwiki/List+Of+Libraries#Artificial_intelligence) of some AI libraries suggested on OGRE3D website. Seems they are mostly written in C++. 564 | * [GameplayKit Programming Guide](https://developer.apple.com/library/content/documentation/General/Conceptual/GameplayKit_Guide/) 565 | 566 | # Other related staff 567 | 568 | ### Linear algebra 569 | 570 | 571 | * [Accelerate-in-Swift](https://github.com/hyperjeff/Accelerate-in-Swift) - Swift example codes for the Accelerate.framework 572 | * [cuda-swift](https://github.com/rxwei/cuda-swift) - Swift binding to CUDA. Not iOS, but still interesting. 573 | * [Dimensional](https://github.com/JadenGeller/Dimensional) - Swift matrices with friendly semantics and a familiar interface. 574 | * [Eigen](http://eigen.tuxfamily.org/) - A high-level C++ library of template headers for linear algebra, matrix and vector operations, numerical solvers and related algorithms. [MPL2] 575 | * [Matrix](https://github.com/hollance/Matrix) - convenient matrix type with different types of subscripts, custom operators and predefined matrices. A fork of Surge. 576 | * [NDArray](https://github.com/t-ae/ndarray) - Float library for Swift, accelerated with Accelerate Framework. 577 | * [Swift-MathEagle](https://github.com/rugheid/Swift-MathEagle) - A general math framework to make using math easy. Currently supports function solving and optimisation, matrix and vector algebra, complex numbers, big int, big frac, big rational, graphs and general handy extensions and functions. 578 | * [SwiftNum](https://github.com/donald-pinckney/SwiftNum) - linear algebra, fft, gradient descent, conjugate GD, plotting. 579 | * [Swix](https://github.com/scottsievert/swix) - Swift implementation of NumPy and OpenCV wrapper. 580 | * [Surge](https://github.com/mattt/Surge) from Mattt 581 | * [Upsurge](https://github.com/aleph7/Upsurge) - generic tensors, matrices on top of Accelerate. A fork of Surge. 582 | * [YCMatrix](https://github.com/yconst/YCMatrix) - A flexible Matrix library for Objective-C and Swift (OS X / iOS) 583 | 584 | ### Statistics, random numbers 585 | 586 | 587 | * [SigmaSwiftStatistics](https://github.com/evgenyneu/SigmaSwiftStatistics) - A collection of functions for statistical calculation written in Swift. 588 | * [SORandom](https://github.com/SebastianOsinski/SORandom) - Collection of functions for generating psuedorandom variables from various distributions 589 | * [RandKit](https://github.com/aidangomez/RandKit) - Swift framework for random numbers & distributions. 590 | 591 | 592 | ### Mathematical optimization 593 | 594 | 595 | * [fmincg-c](https://github.com/gautambhatrcb/fmincg-c) - Conjugate gradient implementation in C 596 | * [libLBFGS](https://github.com/chokkan/liblbfgs) - a C library of Limited-memory Broyden-Fletcher-Goldfarb-Shanno (L-BFGS) 597 | * [SwiftOptimizer](https://github.com/haginile/SwiftOptimizer) - QuantLib Swift port. 598 | 599 | ### Feature extraction 600 | 601 | 602 | * [IntuneFeatures](https://github.com/venturemedia/intune-features) framework contains code to generate features from audio files and feature labels from the respective MIDI files. 603 | * [matchbox](https://github.com/hfink/matchbox) - Mel-Frequency-Cepstral-Coefficients and Dynamic-Time-Warping for iOS/OSX. **Warning: the library was updated last time when iOS 4 was still hot.** 604 | * [LibXtract](https://github.com/jamiebullock/LibXtract) is a simple, portable, lightweight library of audio feature extraction functions. 605 | 606 | ### Data Visualization 607 | 608 | 609 | * [Charts](https://github.com/danielgindi/Charts) - The Swift port of the MPAndroidChart. 610 | * [iOS-Charts](https://github.com/danielgindi/ios-charts) 611 | * [Core Plot](https://github.com/core-plot/core-plot) 612 | * [Awesome iOS charts](https://github.com/sxyx2008/awesome-ios-chart) 613 | * [JTChartView](https://github.com/kubatru/JTChartView) 614 | * [VTK](http://www.vtk.org/gallery/) 615 | * [VTK in action](http://www.vtk.org/vtk-in-action/) 616 | * [D3.js iOS binding](https://github.com/lee-leonardo/iOS-D3) 617 | 618 | ### Bioinformatics (kinda) 619 | 620 | 621 | * [BioJS](http://biojs.net/) - a set of tools for bioinformatics in the browser. BioJS builds a infrastructure, guidelines and tools to avoid the reinvention of the wheel in life sciences. Community builds modules than can be reused by anyone. 622 | * [BioCocoa](http://www.bioinformatics.org/biococoa/wiki/pmwiki.php) - BioCocoa is an open source OpenStep (GNUstep/Cocoa) framework for bioinformatics written in Objective-C. [Dead project]. 623 | * [iBio](https://github.com/Lizhen0909/iBio) - A Bioinformatics App for iPhone. 624 | 625 | ### Big Data (not really) 626 | 627 | 628 | * [HDF5Kit](https://github.com/aleph7/HDF5Kit) - This is a Swift wrapper for the HDF5 file format. HDF5 is used in the scientific comunity for managing large volumes of data. The objective is to make it easy to read and write HDF5 files from Swift, including playgrounds. 629 | 630 | ### IPython + Swift 631 | 632 | 633 | * [iSwift](https://github.com/KelvinJin/iSwift) - Swift kernel for IPython notebook. 634 | 635 | # iOS ML Blogs 636 | 637 | 638 | ### Regular mobile ML 639 | 640 | * **[The "Machine, think!" blog](http://machinethink.net/blog/) by Matthijs Hollemans** 641 | * [The “hello world” of neural networks](http://matthijshollemans.com/2016/08/24/neural-network-hello-world/) - Swift and BNNS 642 | * [Convolutional neural networks on the iPhone with VGGNet](http://matthijshollemans.com/2016/08/30/vggnet-convolutional-neural-network-iphone/) 643 | * **[Pete Warden's blog](https://petewarden.com/)** 644 | * [How to Quantize Neural Networks with TensorFlow](https://petewarden.com/2016/05/03/how-to-quantize-neural-networks-with-tensorflow/) 645 | 646 | ### Accidental mobile ML 647 | 648 | * **[Google research blog](https://research.googleblog.com)** 649 | * **[Apple Machine Learning Journal](https://machinelearning.apple.com/)** 650 | * **[Invasive Code](https://www.invasivecode.com/weblog/) blog** 651 | * [Machine Learning for iOS](https://www.invasivecode.com/weblog/machine-learning-swift-ios/) 652 | * [Convolutional Neural Networks in iOS 10 and macOS](https://www.invasivecode.com/weblog/convolutional-neural-networks-ios-10-macos-sierra/) 653 | * **Big Nerd Ranch** - [Use TensorFlow and BNNS to Add Machine Learning to your Mac or iOS App](https://www.bignerdranch.com/blog/use-tensorflow-and-bnns-to-add-machine-learning-to-your-mac-or-ios-app/) 654 | 655 | ### Other 656 | 657 | * [Intelligence in Mobile Applications](https://medium.com/@sadmansamee/intelligence-in-mobile-applications-ca3be3c0e773#.lgk2gt6ik) 658 | * [An exclusive inside look at how artificial intelligence and machine learning work at Apple](https://backchannel.com/an-exclusive-look-at-how-ai-and-machine-learning-work-at-apple-8dbfb131932b) 659 | * [Presentation on squeezing DNNs for mobile](https://www.slideshare.net/mobile/anirudhkoul/squeezing-deep-learning-into-mobile-phones) 660 | * [Curated list of papers on deep learning models compression and acceleration](https://handong1587.github.io/deep_learning/2015/10/09/acceleration-model-compression.html) 661 | 662 | # GPU Computing Blogs 663 | 664 | 665 | * [OpenCL for iOS](https://github.com/linusyang/opencl-test-ios) - just a test. 666 | * Exploring GPGPU on iOS. 667 | * [Article](http://ciechanowski.me/blog/2014/01/05/exploring_gpgpu_on_ios/) 668 | * [Code](https://github.com/Ciechan/Exploring-GPGPU-on-iOS) 669 | 670 | * GPU-accelerated video processing for Mac and iOS. [Article](http://www.sunsetlakesoftware.com/2010/10/22/gpu-accelerated-video-processing-mac-and-ios0). 671 | 672 | * [Concurrency and OpenGL ES](https://developer.apple.com/library/ios/documentation/3ddrawing/conceptual/opengles_programmingguide/ConcurrencyandOpenGLES/ConcurrencyandOpenGLES.html) - Apple programming guide. 673 | 674 | * [OpenCV on iOS GPU usage](http://stackoverflow.com/questions/10704916/opencv-on-ios-gpu-usage) - SO discussion. 675 | 676 | ### Metal 677 | 678 | * Simon's Gladman \(aka flexmonkey\) [blog](http://flexmonkey.blogspot.com/) 679 | * [Talk on iOS GPU programming](https://realm.io/news/altconf-simon-gladman-ios-gpu-programming-with-swift-metal/) with Swift and Metal at Realm Altconf. 680 | * [The Supercomputer In Your Pocket: 681 | Metal & Swift](https://realm.io/news/swift-summit-simon-gladman-metal/) - a video from the Swift Summit Conference 2015 682 | * https://github.com/FlexMonkey/MetalReactionDiffusion 683 | * https://github.com/FlexMonkey/ParticleLab 684 | * [Memkite blog](http://memkite.com/) - startup intended to create deep learning library for iOS. 685 | * [Swift and Metal example for General Purpose GPU Processing on Apple TVOS 9.0](https://github.com/memkite/MetalForTVOS) 686 | * [Data Parallel Processing with Swift and Metal on GPU for iOS8](https://github.com/memkite/SwiftMetalGPUParallelProcessing) 687 | * [Example of Sharing Memory between GPU and CPU with Swift and Metal for iOS8](http://memkite.com/blog/2014/12/30/example-of-sharing-memory-between-gpu-and-cpu-with-swift-and-metal-for-ios8/) 688 | * [Metal by Example blog](http://metalbyexample.com/) 689 | * [objc-io article on Metal](https://www.objc.io/issues/18-games/metal/) 690 | 691 | # Mobile ML Books 692 | 693 | * Building Mobile Applications with TensorFlow by Pete Warden. [Book page](http://www.oreilly.com/data/free/building-mobile-applications-with-tensorflow.csp). [Free download](http://www.oreilly.com/data/free/building-mobile-applications-with-tensorflow.csp?download=true) 694 | 695 | # Learn Machine Learning 696 | 697 | Please note that in this section, I'm not trying to collect another list of ALL machine learning study resources, but only composing a list of things that I found useful. 698 | 699 | * [Academic Torrents](http://academictorrents.com/browse.php?cat=7). Sometimes awesome courses or datasets got deleted from their sites. But this doesn't mean, that they are lost. 700 | * [Arxiv Sanity Preserver](http://www.arxiv-sanity.com/) - a tool to keep pace with the ML research progress. 701 | 702 | ## Free Books 703 | 704 | * Immersive Linear Algebra [interactive book](http://immersivemath.com/ila/index.html) by J. Ström, K. Åström, and T. Akenine-Möller. 705 | * ["Natural Language Processing with Python"](http://www.nltk.org/book/) - free online book. 706 | * [Probabilistic Programming & Bayesian Methods for Hackers](http://camdavidsonpilon.github.io/Probabilistic-Programming-and-Bayesian-Methods-for-Hackers/) - An intro to Bayesian methods and probabilistic programming from a computation/understanding-first, mathematics-second point of view. 707 | * ["Deep learning"](http://www.deeplearningbook.org/) - the book by Ian Goodfellow and Yoshua Bengio and Aaron Courville 708 | 709 | ## Free Courses 710 | 711 | * [Original Machine Learning Coursera course](https://www.coursera.org/learn/machine-learning/home/info) by Andrew Ng. 712 | * [Machine learning playlist on Youtube](https://www.youtube.com/playlist?list=PLD0F06AA0D2E8FFBA). 713 | * Free online interactive book ["Neural Networks and Deep Learning"](http://neuralnetworksanddeeplearning.com/). 714 | * [Heterogeneous Parallel Programming](https://www.coursera.org/course/hetero) course. 715 | * [Deep Learning for Perception](https://computing.ece.vt.edu/~f15ece6504/) by Virginia Tech, Electrical and Computer Engineering, Fall 2015: ECE 6504 716 | * [CAP 5415 - Computer Vision](http://crcv.ucf.edu/courses/CAP5415/Fall2014/index.php) by UCF 717 | * [CS224d: Deep Learning for Natural Language Processing](http://cs224d.stanford.edu/syllabus.html) by Stanford 718 | * [Machine Learning: 2014-2015 Course materials](https://www.cs.ox.ac.uk/people/nando.defreitas/machinelearning/) by Oxford 719 | * [Stanford CS class CS231n: Convolutional Neural Networks for Visual Recognition.](http://cs231n.stanford.edu/) 720 | * [Deep Learning for Natural Language Processing \(without Magic\)](http://nlp.stanford.edu/courses/NAACL2013/) 721 | * [Videos](http://videolectures.net/deeplearning2015_montreal/) from Deep Learning Summer School, Montreal 2015. 722 | * [Deep Learning Summer School, Montreal 2016](http://videolectures.net/deeplearning2016_montreal/) 723 | 724 | 725 | # Other Lists 726 | 727 | 728 | * [Awesome Machine Learning](https://github.com/josephmisiti/awesome-machine-learning) 729 | * [Machine Learning Courses](https://github.com/prakhar1989/awesome-courses#machine-learning) 730 | * [Awesome Data Science](https://github.com/okulbilisim/awesome-datascience) 731 | * [Awesome Computer Vision](https://github.com/jbhuang0604/awesome-computer-vision) 732 | * [Speech and language processing](https://github.com/edobashira/speech-language-processing) 733 | * [The Rise of Chat Bots:](https://stanfy.com/blog/the-rise-of-chat-bots-useful-links-articles-libraries-and-platforms/) Useful Links, Articles, Libraries and Platforms by Pavlo Bashmakov. 734 | * [Awesome Machine Learning for Cyber Security](https://github.com/jivoi/awesome-ml-for-cybersecurity) 735 | 736 | --------------------------------------------------------------------------------