Giter VIP home page Giter VIP logo

jpf's People

Contributors

jason-whitmore avatar

Watchers

 avatar

jpf's Issues

Restructure the project

Should separate out the project into separate folders:
-root
-jpf: the package source code
-docs: The markdown doc files
-makefile: include functions of creating the jar file, running examples, running tests
-Examples.java
-Tests.java

Much of this may require some create use of the makefile to help make the examples and tests run smoothly

Incorporate feedback

Readme.md:
-Remove redundant "easy" in main docs "easily testable, extendable, as well as easy...." (Complete)
-Explain why Tensorflow/Keras were enjoyable to use, and how it inspired this project. (Complete)
-Get rid of "Important documentation" and just have "Documentation" since all docs are important and also that list contains all of the markdown doc files anyway (other than the readme) (Complete)
-Change the subsection titles of the "how to run" section to line up with earlier reference to those sections (Complete).
-Change the design section to mention that the diagram is only a small part of the entire design BEFORE the image to prevent confusion. (Complete)
-Add started/last commit dates to help show the effort which this project was created with (Complete)

UML diagrams:
-Possibly improve readability with comments/text explaining what the classes/connections are.

NeuralNetwork Examples

Include examples for the NeuralNetwork class. Ideas:
-Fitting f(x)=x^2 and measuring progress on each iteration. (Save/Load model) (Complete)
-Fitting f(x)=x^2 on different sized models, demonstrate overfitting (Complete)
-Construct a resnet and fit on the saddle function f(x, y) = x^2-y^2 (Save/Load model, demonstrate advantages of resnet) (Complete)
-Some binary classification task on generated dataset (Complete)
-Multi class classification task on generated dataset (Complete)
-Multi input/output example (Complete)

Work on NeuralNetwork docs

-Should mention the computational graph structure (example of the nncomplex model)
-Describe the predict() and calculateGradient() implementation
-Describe constraints (no cycles)

Use assert statements for public methods

Or IllegalArgumentException. Check online for debates between the two

Idea: throw a AssertError(text) when a parameter is bad which should crash the program (no way to fix via exception catching.

Work on layer docs

-Describe the layer as the "building block" of the neural network.
-Demonstrate the "connections" system between input and output layers.

JavaDocs for most .java files

The standard javadoc style of documentation should be good at explaining what's happening in the classes, constructors, and methods. These should be completed for most .java files.

Checklist:
-ActivationFunction (Complete)
-Add (Complete)
-CrossEntropy (Complete)
-CSVWriter (Complete)
-Dense (Complete)
-Examples
-Input (Complete)
-Layer (Complete)
-LeakyReLU (Complete)
-LinearAlgebra
-Linear (Complete)
-LinearModel (Complete)
-Loss (Complete)
-Model (Complete)
-MSE (Complete)
-NeuralNetwork (Complete)
-Optimizer (Complete)
-PolynomialModel (Complete)
-RMSProp (Complete)
-SGD (Complete)
-Sigmoid (Complete)
-SimpleModel (Complete)
-SoftmaxLayer (Complete)
-Tanh (Complete)
-Utility (Complete)

Add ReadMe file

Should include sections:

-Introduction
-Motivation
-Overview
-Design
-Examples
-Tests
-Future work

Do final pass over documentation for errors

All md files:

  • readme.md (Complete)
  • ActivationFunctions.md (Complete)
  • Examples.md (Complete)
  • ExtendingClasses.md (Complete)
  • Layer.md (Complete)
  • LinearModel.md (Complete)
  • Loss.md (Complete)
  • Misc.md (Complete)
  • Model.md (Complete)
  • NeuralNetwork.md (Complete)
  • Optimizer.md (Complete)
  • PolynomialModel.md (Complete)
  • SimpleModel.md (Complete)

Docs: Examples

In addition to the example class, there should be a markdown file for all of the examples that describes what each example does, possibly with screenshots

NeuralNetwork class completion

Most of the functionality in the NeuralNetwork class is complete, but there are a few concrete things that must be finished before documentation can be written:

-Loss functions (avg scalar vs scalar on each output vector)
-Saving/Loading models properly
-Converting interface to use arrays instead of lists for brevity
-Proper constructor usage, especially when using super constructors.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.