Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Deep Learning
  3. JavaNN

JavaNN

Java

A Java deep learning framework implementing neural networks with GPU acceleration via OpenCL and Aparapi.

GitHubGitHub
1.2k stars353 forks0 contributors

What is JavaNN?

NeuralNetworks is a Java deep learning framework that implements various neural network architectures and training algorithms with GPU acceleration via OpenCL and Aparapi. It provides tools for building, training, and experimenting with deep neural networks, focusing on modularity and extensibility to support custom network designs.

Target Audience

Java developers and researchers interested in deep learning who want a flexible, extensible framework for experimenting with neural network architectures and training algorithms, especially those requiring GPU acceleration.

Value Proposition

Developers choose NeuralNetworks for its pure Java implementation with built-in GPU support, modular architecture that allows custom network topologies, and comprehensive set of pre-implemented networks and training algorithms, making it suitable for both experimentation and production use in Java environments.

Overview

java deep learning algorithms and deep neural networks with gpu acceleration

Use Cases

Best For

  • Implementing deep neural networks in Java with GPU acceleration
  • Experimenting with custom neural network architectures and training algorithms
  • Building convolutional networks for image recognition tasks
  • Training restricted Boltzmann machines or deep belief networks
  • Developing autoencoders for feature learning or dimensionality reduction
  • Research and academic projects requiring flexible, extensible deep learning frameworks

Not Ideal For

  • Teams needing production-ready reliability with fully passing test suites
  • Projects requiring built-in visualization or graphical user interfaces
  • Environments without Java 8 or compatible GPU hardware for OpenCL/Aparapi
  • Developers seeking large ecosystems with pre-trained models and active community support

Pros & Cons

Pros

GPU Acceleration Support

Leverages OpenCL and Aparapi for high-performance computation, with most ConnectionCalculator implementations optimized for GPU execution, as detailed in the library structure section.

Modular Network Architecture

Uses a tiered, graph-based design with LayerCalculator and ConnectionCalculator, allowing easy construction of complex topologies like directed acyclic graphs for custom networks.

Multiple Network Types

Supports multilayer perceptrons, convolutional networks, RBMs, autoencoders, and deep belief networks, providing a comprehensive set for experimentation, as listed in the neural network types section.

Extensible Activation Functions

Includes sigmoid, tanh, ReLU, LRN, softplus, and softmax with GPU support, and allows custom implementations, enhancing flexibility for researchers.

Cons

Incomplete and Unstable Codebase

The README admits some tests are not working in the current version, and the user interface project is unfinished, indicating potential reliability and maintenance issues.

Complex Setup Requirements

Requires downloading specific .dll or .so files for Aparapi, setting up OpenCL, and configuring system PATH, which can be cumbersome and error-prone, as noted in the build instructions.

Aparapi Code Restrictions

GPU execution with Aparapi imposes limitations like only one-dimensional arrays and primitive types, requiring data conversion and reducing code flexibility, as explained in the GPU section.

Frequently Asked Questions

Quick Stats

Stars1,234
Forks353
Contributors0
Open Issues18
Last commit8 years ago
CreatedSince 2013

Tags

#autoencoder#opencl#deep-learning#gpu-acceleration#neural-networks#java#convolutional-networks#machine-learning#backpropagation

Built With

O
OpenCL
M
Maven
J
Java

Included in

Deep Learning27.8k
Auto-fetched 7 hours ago

Related Projects

Tensorflow - Open source software library for numerical computation using data flow graphsTensorflow - Open source software library for numerical computation using data flow graphs

An Open Source Machine Learning Framework for Everyone

Stars194,928
Forks75,295
Last commit6 hours ago
PyTorch - Tensors and Dynamic neural networks in Python with strong GPU accelerationPyTorch - Tensors and Dynamic neural networks in Python with strong GPU acceleration

Tensors and Dynamic neural networks in Python with strong GPU acceleration

Stars99,512
Forks27,618
Last commit7 hours ago
Colossal-AI - An Integrated Large-scale Model Training System with Efficient Parallelization TechniquesColossal-AI - An Integrated Large-scale Model Training System with Efficient Parallelization Techniques

Making large AI models cheaper, faster and more accessible

Stars41,376
Forks4,518
Last commit1 day ago
Paddle - PArallel Distributed Deep LEarning by BaiduPaddle - PArallel Distributed Deep LEarning by Baidu

PArallel Distributed Deep LEarning: Machine Learning Framework from Industrial Practice (『飞桨』核心框架,深度学习&机器学习高性能单机、分布式训练和跨平台部署)

Stars23,863
Forks5,988
Last commit7 hours ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub