Share some popular ai open source tools/frameworks.

TensorFlow

TensorFlow™ is an open source software library originally developed by researchers and engineers on the Google Brain Team. TensorFlow uses data flow diagrams for numerical calculations. The nodes in the graph represent mathematical operations, and the edges represent arrays of multidimensional data (tensors) that communicate between them. The architecture is flexible, and you can deploy computing to one or more cpus or Gpus on a desktop, server, or mobile device using a single API.

TensorFlow provides a variety of apis. The lowest level API — TensorFlow Core — provides full programming control. The advanced API is built on top of the TensorFlow Core. These higher-level apis are generally easier to learn and use than TensorFlow Core. In addition, higher-level apis make repetitive tasks easier and more consistent across different users. A high-level API like TF.Estimator helps you manage data sets, estimators, training, and reasoning.

Data center units in TensorFlow are tensors. A tensor consists of a set of primitive values that form an arbitrary number of dimensional arrays. The order of a tensor is its dimension.

Some Google apps that use Tensorflow are:

1.RankBrain: Large-scale deployment of a deep neural network for search ranking at www.google.com.

2.Inception Image classification Model: A baseline model and follow-up study of highly accurate computer vision models, constructed on the basis of a model acquired for the 2014 Imagenet Image Classification Challenge.

3.SmartReply: A Deep LSTM model that automatically generates E-mail responses.

Massively Multitask Networks for Drug Discovery: a deep neural network model that Google has collaborated with Stanford University to identify promising Drug candidates.

5. Device-level computer vision for OCR: Realize optical character recognition and real-time translation based on device-level computer vision model.

PyTorch

Torch is an open source machine learning library, scientific computing framework, and scripting language based on the Lua programming language.

function

1. A powerful N-dimensional array

2. There are many indexing, slicing, conversion programs.

3. Write simple C extensions using LuaJIT.

4. Linear algebra programs

5. Neural networks and energy-based models

6. Digital optimization program

7.GPU support, faster and more efficient

8. Embeddable, with iOS and Android background ports

Torch is used by Facebook’s ARTIFICIAL intelligence research group, IBM, Yandex and Idiap research institutes. Now that it has been expanded to Android and iOS, researchers are also using Torch to build hardware to implement data flows.

Pytorch is a Python open source machine learning library for applications such as natural language processing. It was primarily developed by Facebook’s ARTIFICIAL intelligence research group. Uber’s probabilistic programming software “Pyro” was created on Pytorch.

Caffe

Caffe is a clear and efficient deep learning framework.

Caffe was started by Yang while she was a PhD student at the University of California, Berkeley. It was developed by Berkeley AI Research (BAIR) and community contributors. It focuses primarily on convolutional neural networks for computer vision applications. Caffe is a good and popular choice for computer vision-related tasks, and you can sign up at Caffe Model Zoo to download many of your successfully modeled models and use them directly for development.

advantages

1.Expressive architecture encourages practicality and innovation. Models and optimizations defined with configurations without the need for hard coding. By setting a single flag to train on the GPU machine, and then deploying clustering or mobile devices, the switch between CPU and GPU is realized.

2. Extensible code is better for development. More than 1,000 developers contributed significantly to Caffe in its first year of development.

3. The high speed of Caffe makes a perfect combination of theoretical experiment and practical application. Caffe can process more than 60 million images per day using a single NVIDIA K40 GPU.

4. Community: Caffe has supported academic research projects in the fields of vision, speech and multimedia, launching prototypes, and even large-scale industrial applications.

Apache SystemML

The best open source tools for machine learning using big data.

SystemML is a machine learning technology created by IBM and one of the top projects in Apache. It is a flexible and extensible machine learning system. Key features of SystemML are as follows:

1. Use class R and Python-like languages to customize algorithms.

2. There are several execution modes including Spark MLContext, Spark Batch, Hadoop Batch, Standalone and JMLC(Java Machine Learning Connector).

3. Automatic optimization based on data and clustering characteristics ensures the high efficiency and scalability of the algorithm.

4. Think of SystemML as SQL, the structured query language for machine learning. The latest version of SystemML (1.0.0) supports Java 8+, Scala 2.11+, Python 2.7/3.5+, Hadoop 2.6+, and Spark 2.1+.

5. Runs on Apache Spark, where SystemML looks at code line by line to make sure it runs on the Apache Spark cluster.

Future development of SystemML will include additional deep learning using gpus, such as importing and running neural network architectures and pre-training models for training.

Java Machine Learning Connector (JMLC) for SystemML

The Java Machine Learning Connector (JMLC) API is a programming interface that interacts with SystemML while embedded. The main purpose of JMLC is to serve as a scoring API, where the scoring function is expressed in the DML language of SystemML. In addition to scoring, embedded SystemML can perform unsupervised learning tasks such as clustering in the context of larger applications running on a single machine.

Apache Mahout

Apache Mahout is a distributed linear algebra framework that provides some classic machine learning algorithms.

Mahout is designed to help developers implement their algorithms quickly and easily. Apache Spark is a point-and-use distributed backend, or can be extended to other distributed backend. Its characteristics are as follows:

1. Mathematical expression Scala DSL.

2. Supports multiple distributed backends (including Apache Spark).

3. Includes modular local solvers for CPU/GPU/CUDA acceleration.

4.Apache Mahout application areas include collaborative filtering (CF), clustering, and classification.

function

Taste CF.Taste is an open source project for collaborative filtering (CF) started by Sean Owen at SourceForge and gifted to Mahout in 2008.

2. Map-reduce cluster implementations include k-means, fuzzy K-means, Canopy, Dirichlet and Mean-shift algorithms, etc.

3. Classification implementation of distributed naive Bayes and complementary Naive Bayes.

Distributed fitness functions for evolutionary programming.

5. Matrix and vector libraries.

OpenNN

OpenNN is an open source library written in c++ that implements neural network modeling.

Opennn (Open Neural Network Library), formerly known as Flood, is based on R. Lopez’s 2008 doctoral dissertation, Neural Networks in Engineering Variational Problems, at the Technical University of Catalonia.

Opennn implements data mining using a set of functions, and an API can be used to embed these functions into other software tools to enable interaction between software tools and predictive analysis tasks. The main advantage of Opennn is its high performance. Developed in c++, it has better memory management and higher processing speed, and leverages OpenMP and GPU acceleration (CUDA) for CPU parallelization.

The Opennn package contains unit tests, many examples, and extensive documentation. It provides an effective framework for the research and development of neural network algorithms and applications. Neural network design is a professional predictive analysis tool based on OpenNN, which means that the neural engine of neural network design is built based on OpenNN.

Neuroph

Neuroph is an object-oriented neural network framework written in Java.

Neuroph can be used to create and train neural networks in Java programs, providing a Java class library as well as the easyNeurons, a GUI tool for creating and training neural networks. Neuroph is a lightweight Java neural network framework that can be used to develop common neural network architectures. It contains a well-designed open source Java library with a small number of base classes corresponding to basic neural network concepts. It also has a nice GUI neural network editor to quickly create Java neural network components. It is currently available as open source under the Apache 2.0 license.

Neuroph’s core classes correspond to basic neural network concepts such as artificial neurons, neuron layers, neuron connections, weights, transfer functions, input functions, and learning rules. Neuroph supports common neural network architectures, such as multi-layer perceptrons with backpropagation, Kohonen and Hopfield networks. All of these classes can be extended and customized to create neural networks and learn rules. Neuroph also supports image recognition.

Deeplearning4j

Deeplearning4j is the first commercial-grade open source distributed deep learning library written for Java and Scala.

Deeplearning4j is designed to be a state-of-the-art ready-to-use device, rather than just doing configuration, allowing non-specialists to quickly build models.

DL4J, which can import neural network models from most major frameworks through Keras (including TensorFlow, Caffe, and Theano), provides cross-team toolkits for data scientists, data engineers, and DevOps, bridging the barrier between the Python ecosystem and the JVM. Keras is now the Python API for Deeplearning4j.

function

1. Distributed CPUS and Gpus

2.Java, Scala and Python APIs

3. Applicable to microservice architectures

4. Parallel training is carried out by reducing the number of iterations

5. Scalability on Hadoop

6. Gpu support on AWS extensions

library

1.Deeplearning4J: Neural network platform

2.ND4J: Numpy for the JVM

DataVec: Tool for machine learning ETL operations

4.JavaCPP: Bridge between Java and C ++

Arbiter: machine learning algorithm evaluation tool

6.RL4J: Deep enhanced learning for JVMS

Mycroft

Mycroft claims to be the world’s first open source assistant for everything from science projects to enterprise software applications.

Mycroft can run anywhere — on a desktop computer, in a car or on a raspberry PI. This is open source software that can be freely mixed, extended and improved.

OpenCog

OpenCog is a project that aims to build an open source artificial intelligence framework.

OpenCog is a diverse portfolio of cognitive algorithms, each of which is innovative. However, careful adherence to the principle of cognitive synergy is what makes OpenCog’s overall architecture so powerful. OpenCog was originally based on the source code released in 2008 as the Novamente Cognition Engine (NCE).

1. A chart database containing terms, atomic formulas, sentences, and relationships as hypergraphs.

2. A modular theory solver that performs graph and hypergraph pattern matching as part of the general graph query engine.

3. A probabilistic genetic program called Meta-optimized Semantic evolutionary Search (MOSES) was originally developed by Moshe Looks, who works at Google.

4. There is an interactive learning application system based on OpenPsi and Unity in virtual world.

5. There is a natural language input system consisting of Link Grammar and RelEx, both of which use the AtomSpace class to represent semantic and syntactic relationships.

6. There is a natural language generation system called SegSim which implements NLGen and NLGen2.

7. The implementation of Psi theory, used to deal with emotional states, drives and impulses, is called OpenPsi.

** Currently, there are many mainstream Tensorflow and Pytorch. The Chinese Version of Tensorflow claimed by Baidu Flying Pulp is also worth paying attention to. Baidu * Flying Pulp * provides many application scenarios, which is conducive to rapid development