Git Product home page Git Product logo

supranode's Introduction

SupraNode

README is WIP. An extensible computational graph library.

About

SupraNode describes a directed computational graph with edges of data and nodes of computations. There is always one source and one sink, though the internal graph may have as many branches as necessary. The name comes from the nature of SupraNode graphs: everything is a Node! To ease construction of more complicated graphs, helper functions are included -- but they always boil down to encapsulating Nodes in more Nodes. Because SupraNode is a header-only library, it can be dropped straight into your project!

Dependencies

Boost::Hana. Also tested with Eigen3.

Nodes

Nodes are the core structure in SupraNode. A Node is defined by the parameters it takes, and can change the functions it implements at runtime. Each Node has four function "slots", known as Connections, and labelled by their parameter types: input->output, output->input, input->input, and output->output. A Connection takes const references to (or temporary copies of) the first set of parameters, and updates pointers to the second set of parameters. Each Node owns one of each parameter on the heap, i.e. a tuple of input (pointer)s and a tuple of output (pointer)s. Nodes return references to the data when queried for raw_updates or raw_outputs. An 'update' is a tuple of input(s) leaving the current Node. In a graph, or simple sequence of Nodes,

Networks

Networks are Nodes that contain Nodes -- simple as that. Each Network represents a source and a sink, and can be used to train the neural network. Networks must be generated via the overloaded >> operator from an Input. Networks consist of an Input followed by one or more Layers. They may be terminated with an Output.

supranode's People

Contributors

eric-w-h avatar

Watchers

James Cloos avatar  avatar

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.