Git Product home page Git Product logo

jml's People

Contributors

adamhutchings avatar drklocekgit avatar jakeroggenbuck avatar sophon96 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

jml's Issues

Testing workflow is broken

The current build and test workflow that I wrote is broken in a few regards.

  • It only tests MinGW on Windows.
  • Linux and macOS install outdated Meson and Ninja versions
  • Meson and ninja versions are not fixed
  • Some other major issues that I forgot.

linking is broken on windows

Because of course it is. See here. This seems like a real mess to fix (having to add this weird compiler internal attribute to every symbol).

Finish #12

We need to add layers to matrices and make an implementation for the "apply" function. Could anyone do this by Wednesday?

Data loading and handling

We need some way to load data formats, such as CSV, Apache Parquet, HDF. There's libraries for these in C++, but I'm not sure how well they integrate. I don't know if there's a ubiquitous data science data library like pandas for C++, which might be preferable to use.

Create proper build script for the library

Preferable: use CMake to create a single object file, or similar. The problem is that (obviously) there's no main function in the library, so we need to build to an object file instead of to an executable. Update scripts/build.sh for this, once PR #9 has been merged.

Add loss calculation

We should be able to see the performance of the neural network on its training data. To that end, we need a function to show the neural network average loss over the testing data, using the mean squared error at first.

Add a proper way to recycle vector slots in the C API

Right now, when a vector is disposed of through the C API, its slots in the vectors array just keeps wasting memory.
We want it to be the case that when a new vector is made, it takes up the first free spot in the array if there is any and only extends the array if it needs to.

Set input and output size for a model, and query if they've been adequately set.

This is to implement the functions get_input_size, get_output_size, set_input_size, set_output_size,and is_specified.

As per the API document:

get_input_size
Scope: jml::Model::
Arguments:
Expected constraints:
Returns:
unsigned
Description:
This function queries the input size for a model.

get_output_size
Scope: jml::Model::
Arguments:
Expected constraints:
Returns:
unsigned
Description:
This function queries the output size for a model.

set_input_size
Scope: jml::Model::
Arguments:
unsigned size
Expected constraints:
size > 0
Returns: void
Description:
This function sets the input size for a model. This function errors if the model already has attached layers or training data.

set_output_size
Scope: jml::Model::
Arguments:
unsigned size
Expected constraints:
size > 0
Returns: void
Description:
This function sets the output size for a model. This function errors if the model already has attached layers or training data.

is_specified
Scope: jml::Model::
Arguments:
Expected constraints:
Returns:
bool
Description:
This function queries whether a given model is fully specified, and ready to be given training data and layers. This should return true if input and output size have been specified, and false otherwise.

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.