Popularity
2.3
Growing
Activity
6.8
-
62
4
1

Programming language: Java
License: MIT License
Tags: Machine Learning     Projects    

Neureka alternatives and similar libraries

Based on the "Machine Learning" category.
Alternatively, view neureka alternatives based on common mentions on social networks and blogs.

Do you think we are missing an alternative of Neureka or a related project?

Add another 'Machine Learning' Library

README

:cyclone: NEUREKA :cyclone:

A platform independent tensor library written in Java.

OpenCL accelerated nd-arrays / tensors for Java, Kotlin, Groovy, Scala, Jython, JRuby...


Current Build Code Coverage Version Codacy Licence Size
Build Status Build Status Code Coverage GitHub version codebeat badge Codacy Badge License: MIT Size

:hammer_and_wrench: Features

  • dynamic computation graph
  • auto differentiation (forwards/backwards)
  • nd-convolution
  • nd-broadcasting
  • flexible tensor indexing and slicing
  • seeding
  • labeling
  • loading and saving as jpg/idx files

Take a quick look:

  • [Neureka with Java](docs/markdown/java_example.md) :coffee:
  • [Neureka with Groovy](docs/markdown/groovy_example.md) :star:

:robot: Tech

Dynamic Autograd : Recording the Computation-Graph ###

Neureka trains your neural network using a computation graph recorder.

This is contrary to the approaches found in other frameworks such as TensorFlow, Theano, Caffe, and CNTK which require the definition of a computation graph ahead of time. This means a developer has to build a neural network structure which cannot change during runtime.

Neureka, uses the recorded computation graph in order to apply a technique called reverse-mode auto-differentiation, which allows your network structure to change during runtime arbitrarily with zero lag or overhead. This powerful feature has been inspired by PyTorch:

  • [Motivation](docs/markdown/motivation.md) :fire:

Main-Package Overview

Package Description
[neureka](src/main/java/neureka/README.md) the root package containing the tensor class and the following sub-packages
[neureka.devices](src/main/java/neureka/devices/README.md) a sub-package which enables cross platform acceleration (OpenCLDevice) and tensor persistence (FileDevice)
[neureka.calculus](src/main/java/neureka/calculus/README.md) a sub-package containing collections of functions and the ability to create custom ones
[neureka.optimization](src/main/java/neureka/optimization/README.md) a sub-package for weight-gradient optimization
[neureka.autograd](src/main/java/neureka/autograd/README.md) the guts of Neurekas autograd system
[neureka.backend](src/main/java/neureka/backend/README.md) the backend containing both a consistent API and a standard implementation

Getting started with Apache Maven:

<dependency>
  <groupId>com.github.gleethos</groupId>
  <artifactId>neureka</artifactId>
  <version>0.6.0</version>
</dependency>

Getting started with Gradle:

Groovy DSL:

implementation 'com.github.gleethos:neureka:0.6.0'

Kotlin DSL:

implementation("com.github.gleethos:neureka:0.6.0")

...or alternatively:

  1. Add jitpack in your root build.gradle at the end of repositories: allprojects { repositories { //... maven { url 'https://jitpack.io' } } }
  2. Add Neureka as dependency: dependencies { implementation 'com.github.Gleethos:neureka:v0.6.0' }

Getting started with Groovy Grape:

@GrabResolver(name = 'jitpack.io', root = 'https://jitpack.io')
@Grab('com.github.Gleethos:neureka:v0.6.0')

import neureka.*

:rocket: Building from source

Execute the following:

 gradlew build

Tests:

 gradlew check

Jar file:

 gradlew jar

Min-jar file:

 gradlew proguard

:mount_fuji: Dependencies

  • OpenCL 2.^ - (JOCL binding)
  • SLF4J 1.7.+ - (Logging API allowing for custom backends)

:book: Documentation


:microscope: Testing & Specification :scroll:

  • BDD & living documentation with Spock!
  • Yes ! Readable html test reports. Check it out!!

:seedling: Development - Commit activity 1 year - Maintenance - GitHub commits

Want to contribute? Don't worry:

There is plenty of developer friendly highly readable living documentation to go through which explains the inner and outer workings of this project very well!

And feedback is always greatly appreciated!


:memo: Todos - Issues

  • Make a wish! :)

:balance_scale: License

  • MIT -> It's Free! ...

Open Source Love


<!---

Stargazers over time

Stargazers over time -->

Tweet


*Note that all licence references and agreements mentioned in the Neureka README section above are relevant to that project's source code only.