Apache MXNet

Last updated
Apache MXNet
Developer(s) Apache Software Foundation
Stable release
1.9.1 [1] / 10 May 2022;2 years ago (10 May 2022)
Repository
Written in C++, Python, R, Java, Julia, JavaScript, Scala, Go, Perl
Operating system Windows, macOS, Linux
Type Library for machine learning and deep learning
License Apache License 2.0
Website mxnet.apache.org

Apache MXNet is an open-source deep learning software framework that trains and deploys deep neural networks. It aims to be scalable, allows fast model training, and supports a flexible programming model and multiple programming languages (including C++, Python, Java, Julia, MATLAB, JavaScript, Go, R, Scala, Perl, and Wolfram Language). The MXNet library is portable and can scale to multiple GPUs [2] and machines. It was co-developed by Carlos Guestrin at the University of Washington, along with GraphLab. [3]

Contents

As of September 2023, it is no longer actively developed. [4] Apache MXNet was effectively abandoned due to a combination of factors including lack of significant contributions, outdated builds, and a shift in focus by its major backer, Amazon, towards other frameworks like PyTorch. The project saw no new releases for over a year, and there were very few pull requests or updates from contributors, leading to its move to the Apache Attic in 2023. Additionally, the community began migrating to other frameworks that offered more robust support and development activity. [5]

Features

Apache MXNet is a scalable deep learning framework that supports deep learning models, such as convolutional neural networks (CNNs) and long short-term memory networks (LSTMs).

Scalability

MXNet can be distributed on dynamic cloud infrastructure using a distributed parameter server (based on research at Carnegie Mellon University, Baidu, and Google [6] ). With multiple GPUs or CPUs, the framework can approach linear scale.

Flexibility

MXNet supports both imperative and symbolic programming. The framework allows developers to track, debug, save checkpoints, modify hyperparameters, and perform early stopping.

Multiple languages

MXNet supports Python, R, Scala, Clojure, Julia, Perl, MATLAB, and JavaScript for front-end development and C++ for back-end optimization.

Portability

The framework supports deployment of a trained model to low-end devices for inference, such as mobile devices by using Amalgamation. [7] Other deployment targets include Internet of things devices (using AWS Greengrass), serverless computing (using AWS Lambda), or containers. These low-end environments can have only weaker CPU or limited memory (RAM) and should be able to use the models that were trained on a higher-level environment (GPU-based cluster, for example)

Cloud Support

MXNet is supported by public cloud providers including Amazon Web Services (AWS) [8] and Microsoft Azure. [9] Currently, MXNet is supported by Intel, Baidu, Microsoft, Wolfram Research, and research institutions such as Carnegie Mellon, MIT, the University of Washington, and the Hong Kong University of Science and Technology. [10]

See also

Related Research Articles

In computing, a solution stack or software stack is a set of software subsystems or components needed to create a complete platform such that no additional software is needed to support applications. Applications are said to "run on" or "run on top of" the resulting platform.

<span class="mw-page-title-main">AppScale</span> American cloud infrastructure software company

AppScale is a software company that offers cloud infrastructure software and services to enterprises, government agencies, contractors, and third-party service providers. The company commercially supports one software product, AppScale ATS, a managed hybrid cloud infrastructure software platform that emulates the core AWS APIs. In 2019, the company ended commercial support for its open-source serverless computing platform AppScale GTS, but AppScale GTS source code remains freely available to the open-source community.

<span class="mw-page-title-main">OpenNebula</span> Cloud-computing platform for managing heterogeneous distributed infrastructure

OpenNebula is an open source cloud computing platform for managing heterogeneous data center, public cloud and edge computing infrastructure resources. OpenNebula manages on-premises and remote virtual infrastructure to build private, public, or hybrid implementations of infrastructure as a service (IaaS) and multi-tenant Kubernetes deployments. The two primary uses of the OpenNebula platform are data center virtualization and cloud deployments based on the KVM hypervisor, LXD/LXC system containers, and AWS Firecracker microVMs. The platform is also capable of offering the cloud infrastructure necessary to operate a cloud on top of existing VMware infrastructure. In early June 2020, OpenNebula announced the release of a new Enterprise Edition for corporate users, along with a Community Edition. OpenNebula CE is free and open-source software, released under the Apache License version 2. OpenNebula CE comes with free access to patch releases containing critical bug fixes but with no access to the regular EE maintenance releases. Upgrades to the latest minor/major version is only available for CE users with non-commercial deployments or with significant open source contributions to the OpenNebula Community. OpenNebula EE is distributed under a closed-source license and requires a commercial Subscription.

A cloud database is a database that typically runs on a cloud computing platform and access to the database is provided as-a-service. There are two common deployment models: users can run databases on the cloud independently, using a virtual machine image, or they can purchase access to a database service, maintained by a cloud database provider. Of the databases available on the cloud, some are SQL-based and some use a NoSQL data model.

Backend as a service (BaaS), sometimes also referred to as mobile backend as a service (MBaaS), is a service for providing web app and mobile app developers with a way to easily build a backend to their frontend applications. Features available include user management, push notifications, and integration with social networking services. These services are provided via the use of custom software development kits (SDKs) and application programming interfaces (APIs). BaaS is a relatively recent development in cloud computing, with most BaaS startups dating from 2011 or later. Some of the most popular service providers are AWS Amplify and Firebase.

AWS Elastic Beanstalk is an orchestration service offered by Amazon Web Services for deploying applications which orchestrates various AWS services, including EC2, S3, Simple Notification Service (SNS), CloudWatch, autoscaling, and Elastic Load Balancers. Elastic Beanstalk provides an additional layer of abstraction over the bare server and OS; users instead see a pre-built combination of OS and platform, such as "64bit Amazon Linux 2014.03 v1.1.0 running Ruby 2.0 (Puma)" or "64bit Debian jessie v2.0.7 running Python 3.4 ". Deployment requires a number of components to be defined: an 'application' as a logical container for the project, a 'version' which is a deployable build of the application executable, a 'configuration template' that contains configuration information for both the Beanstalk environment and for the product. Finally an 'environment' combines a 'version' with a 'configuration' and deploys them. Executables themselves are uploaded as archive files to S3 beforehand and the 'version' is just a pointer to this.

Cloud analytics is a marketing term for businesses to carry out analysis using cloud computing. It uses a range of analytical tools and techniques to help companies extract information from massive data and present it in a way that is easily categorised and readily available via a web browser.

<span class="mw-page-title-main">Plotly</span> Canadian computing company

Plotly is a technical computing company headquartered in Montreal, Quebec, that develops online data analytics and visualization tools. Plotly provides online graphing, analytics, and statistics tools for individuals and collaboration, as well as scientific graphing libraries for Python, R, MATLAB, Perl, Julia, Arduino, JavaScript and REST.

Azure Web Apps was the name for a cloud computing based platform for hosting websites, created and operated by Microsoft. It is a platform as a service (PaaS) which allows publishing Web apps running on multiple frameworks and written in different programming languages, including Microsoft proprietary ones and 3rd party ones. Microsoft Azure Web Sites became available in its first preview version in June 2012, and an official version was announced in June 2013. Microsoft Azure Web Sites was originally named Windows Azure Web Sites, but was renamed as part of a re-branding move across Azure in March 2014. It was subsequently renamed "App Services" in March 2015.

Eclipse Deeplearning4j is a programming library written in Java for the Java virtual machine (JVM). It is a framework with wide support for deep learning algorithms. Deeplearning4j includes implementations of the restricted Boltzmann machine, deep belief net, deep autoencoder, stacked denoising autoencoder and recursive neural tensor network, word2vec, doc2vec, and GloVe. These algorithms all include distributed parallel versions that integrate with Apache Hadoop and Spark.

<span class="mw-page-title-main">BOSH (software)</span>

BOSH is an open-source software project that offers a toolchain for release engineering, software deployment and application lifecycle management of large-scale distributed services. The toolchain is made up of a server and a command line tool. BOSH is typically used to package, deploy and manage cloud software. While BOSH was initially developed by VMware in 2010 to deploy Cloud Foundry PaaS, it can be used to deploy other software. BOSH is designed to manage the whole lifecycle of large distributed systems.

<span class="mw-page-title-main">AWS Lambda</span> Serverless computing platform

AWS Lambda is an event-driven, serverless Function as a Service (FaaS) provided by Amazon as a part of Amazon Web Services. It is designed to enable developers to run code without provisioning or managing servers. It executes code in response to events and automatically manages the computing resources required by that code. It was introduced on November 13, 2014.

The following tables compare notable software frameworks, libraries, and computer programs for deep learning applications.

"Serverless computing is a cloud service category in which the customer can use different cloud capabilities types without the customer having to provision, deploy and manage either hardware or software resources, other than providing customer application code or providing customer data. Serverless computing represents a form of virtualized computing." according to ISO/IEC 22123-2 Function as a service and serverless database are two forms of serverless computing.

Mongoose OS is an Internet of Things (IoT) Firmware Development Framework available under Apache License Version 2.0. It supports low power, connected microcontrollers such as: ESP32, ESP8266, TI CC3200, TI CC3220, STM32. Its purpose is to be a complete environment for prototyping, development and managing connected devices.

SqueezeNet is a deep neural network for image classification released in 2016. SqueezeNet was developed by researchers at DeepScale, University of California, Berkeley, and Stanford University. In designing SqueezeNet, the authors' goal was to create a smaller neural network with fewer parameters while achieving competitive accuracy. Their best-performing model achieved the same accuracy as AlexNet on ImageNet classification, but has a size 510x less than it.

Amazon SageMaker AI is a cloud-based machine-learning platform that allows the creation, training, and deployment by developers of machine-learning (ML) models on the cloud. It can be used to deploy ML models on embedded systems and edge-devices. The platform was launched in November 2017.

<span class="mw-page-title-main">IBM Cloud</span> Cloud computing services provided by IBM

IBM Cloud is a set of cloud computing services for business offered by the information technology company IBM.

References

  1. "Release 1.9.1". 10 May 2022. Retrieved 30 June 2022.
  2. "Building Deep Neural Networks in the Cloud with Azure GPU VMs, MXNet and Microsoft R Server". Microsoft. 15 September 2016. Archived from the original on August 15, 2023. Retrieved 13 May 2017.
  3. "Carlos Guestrin". guestrin.su.domains. Archived from the original on September 22, 2023.
  4. "Apache MXNet - Apache Attic".
  5. "Apache MXNet - Apache Attic". attic.apache.org. Retrieved 2024-06-05.
  6. "Scaling Distributed Machine Learning with the Parameter Server" (PDF). Archived (PDF) from the original on August 13, 2023. Retrieved 2014-10-08.
  7. "Amalgamation". Archived from the original on 2018-08-08. Retrieved 2018-05-08.
  8. "Apache MXNet on AWS - Deep Learning on the Cloud". Amazon Web Services, Inc. Retrieved 13 May 2017.
  9. "Building Deep Neural Networks in the Cloud with Azure GPU VMs, MXNet and Microsoft R Server". Microsoft TechNet Blogs. 15 September 2016. Retrieved 6 September 2017.
  10. "MXNet, Amazon's deep learning framework, gets accepted into Apache Incubator" . Retrieved 2017-03-08.