All Projects → hswick → Jutsu.ai

hswick / Jutsu.ai

Licence: epl-1.0
Clojure wrapper for deeplearning4j

Programming Languages

clojure
4091 projects

Projects that are alternatives of or similar to Jutsu.ai

Wekadeeplearning4j
Weka package for the Deeplearning4j java library
Stars: ✭ 127 (+36.56%)
Mutual labels:  deeplearning4j
arabic-characters-recognition
Arabic Handwritten Characters Recognition using Deeplearning4j
Stars: ✭ 41 (-55.91%)
Mutual labels:  deeplearning4j
Kafka Streams Machine Learning Examples
This project contains examples which demonstrate how to deploy analytic models to mission-critical, scalable production environments leveraging Apache Kafka and its Streams API. Models are built with Python, H2O, TensorFlow, Keras, DeepLearning4 and other technologies.
Stars: ✭ 661 (+610.75%)
Mutual labels:  deeplearning4j
Java Deep Learning Cookbook
Code for Java Deep Learning Cookbook
Stars: ✭ 156 (+67.74%)
Mutual labels:  deeplearning4j
ChessBoardScanner
Java based Chess Board Scanner, which converts 2D chess board image into a machine readable format a.k.a. Forsyth–Edwards Notation (FEN). It uses OpenCV and Deeplearning4j frameworks, complemented with some proprietary algorithms implemented for realizing the goal. It currently supports the chess board and pieces sets of the most common online c…
Stars: ✭ 32 (-65.59%)
Mutual labels:  deeplearning4j
textdigester
TextDigester: document summarization java library
Stars: ✭ 23 (-75.27%)
Mutual labels:  deeplearning4j
Photolabeller
Federated Learning: Client application doing classification of images and local training. Works better with the Parameter Server at https://github.com/mccorby/PhotoLabellerServer
Stars: ✭ 119 (+27.96%)
Mutual labels:  deeplearning4j
Deeplearning4j
All DeepLearning4j projects go here.
Stars: ✭ 68 (-26.88%)
Mutual labels:  deeplearning4j
gan deeplearning4j
Automatic feature engineering using Generative Adversarial Networks using Deeplearning4j and Apache Spark.
Stars: ✭ 19 (-79.57%)
Mutual labels:  deeplearning4j
Dl4j Tutorials
dl4j 基础教程 配套视频:https://space.bilibili.com/327018681/#/
Stars: ✭ 415 (+346.24%)
Mutual labels:  deeplearning4j
Deeplearning4j
Suite of tools for deploying and training deep learning models using the JVM. Highlights include model import for keras, tensorflow, and onnx/pytorch, a modular and tiny c++ library for running math code and a java based math library on top of the core c++ library. Also includes samediff: a pytorch/tensorflow like library for running deep learni…
Stars: ✭ 12,277 (+13101.08%)
Mutual labels:  deeplearning4j
Dluid
Deep learning user interface designer
Stars: ✭ 27 (-70.97%)
Mutual labels:  deeplearning4j
Rl4j
Deep Reinforcement Learning for the JVM (Deep-Q, A3C)
Stars: ✭ 330 (+254.84%)
Mutual labels:  deeplearning4j
Stockprediction
Plain Stock Close-Price Prediction via Graves LSTM RNNs
Stars: ✭ 134 (+44.09%)
Mutual labels:  deeplearning4j
Digitrecognizer
Java Convolutional Neural Network example for Hand Writing Digit Recognition
Stars: ✭ 23 (-75.27%)
Mutual labels:  deeplearning4j
Federatedandroidtrainer
See new version https://github.com/mccorby/PhotoLabeller
Stars: ✭ 123 (+32.26%)
Mutual labels:  deeplearning4j
twse-captcha-solver-dl4j
A deeplearning based captcha solver for http://bsr.twse.com.tw/bshtm/
Stars: ✭ 29 (-68.82%)
Mutual labels:  deeplearning4j
Yolo Custom Object Detector
Making custom object detector using Yolo (Java and Python)
Stars: ✭ 84 (-9.68%)
Mutual labels:  deeplearning4j
Pujangga
Pujangga - Indonesian Natural Language Processing Tool with REST API, an Interface for InaNLP and Deeplearning4j's Word2Vec
Stars: ✭ 47 (-49.46%)
Mutual labels:  deeplearning4j
Scalnet
A Scala wrapper for Deeplearning4j, inspired by Keras. Scala + DL + Spark + GPUs
Stars: ✭ 342 (+267.74%)
Mutual labels:  deeplearning4j

jutsu.ai

Clojure wrapper for deeplearning4j with some added syntactic sugar.

What if I told you that you could do machine learning on the JVM without wanting to cry or set your hair on fire? The goal of this library is to be the most syntactically elegant machine learning library for Clojure/Java ecosystem. jutsu.ai uses Clojure specific code idioms, like Data as Code, to create an aesthetic and declarative api.

jutsu.ai makes use of my laziest but cleverest achievement which is that the network configuration translates clojure keywords into java method calls. The implication of this is that the majority of the config options provided by deeplearning4j are accessible with this library.

The best of all, no more snakes!

alt text

Currently this project is a work in progress. However, no drastic API changes are expected. Configurations have been tested on basic feedforward nets, RNN's, and CNN's. If you can't seem to find a configuration feature you are looking for submit an issue and I'll do my best to help.

If you have any suggestions or fixes please feel free to submit a PR as well!

Currently need help documenting the different configuration options. However, deeplearning4j has a very good resource that I recommend checking out.

Usage

Install jutsu.ai by including this in your project dependencies:

[hswick/jutsu.ai "0.1.5"]

You will also need to include a ND4J backend:

For CPU:

[org.nd4j/nd4j-native-platform "1.0.0-beta"]

For GPU:

[org.nd4j/nd4j-cuda-8.0-platform "1.0.0-beta"]

Here is a toy example demonstrating classifying the well known iris dataset.

(ns skynet.core
  (:require [jutsu.ai.core :as ai]))

;;Example configuration of a simple multilayer feedforward neural network architecture
;;classifying the iris dataset.
(def iris-net-config
	[:layers 
		[[:dense [:n-in 4 :n-out 10 :activation :relu]]
	 	 [:dense [:n-in 10 :n-out 10 :activation :relu]]
	 	 [:output :negative-log-likelihood [:n-in 10 :n-out 3 :activation :softmax]]]])

(def iris-net
	(-> iris-net-config
		ai/network
		ai/initialize-net))

(defn iris-train []
  (let [iris-iterator (ai/classification-csv-iterator "iris.csv" 150 4 3)]
    (-> iris-net
	(ai/train-net! 200 iris-iterator)
	(ai/save-model "iris-model"))
  (.reset iris-iterator)
  (println (ai/evaluate iris-net iris-iterator))))

(iris-train)

Documentation

Make sure to take a look at the wiki for more documentation.

Here is a video tutorial I made demonstrating the use of jutsu.ai.

Additional Resources

Here is a list of libraries that I have created to be used with jutsu.ai:

  • jutsu.matrix Clojure wrapper around ND4J to make it easier to work with the underlying matrices in DL4J.
  • jutsu.nlp Clojure wrapper around DL4J's NLP features. Provides useful abstractions for Word Vectors.
  • jutsu.ai.ui GUI for visualizing DL4J training
  • jutsu Simple web based graphing tool for Clojure

Here is a list of libraries that I've found useful when working with jutsu.ai:

  • claypoole Juiced up clojure functions like pmap. Very useful when working with big data sets.
  • tablesaw Table slicing tool for Java. Nice API and extremely performant.

Dev

Run boot night to startup nightlight and begin editing the project in a browser.

Contributing

When changing project dependencies or project version number, make sure to update this in the build.boot file. The Travis build uses boot, and will not pass the checks unless you update it.

The project.clj file is simple there to make it easier for other developers to contribute.

License

Distributed under the Eclipse Public License either version 1.0 or (at your option) any later version.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].