Giter Club home page Giter Club logo

Comments (5)

vedanshpriyadarshi avatar vedanshpriyadarshi commented on August 16, 2024 1

Great idea! We should rename Matrix to Tensor.

from bnn.

czgdp1807 avatar czgdp1807 commented on August 16, 2024

I have thought of the following modules,

  1. core - Containing the data structures(Matrix, and others) for CPU(including parallel computing support on CPU using threads).
  2. cuda - Containing CUDA support for most probably the data structures in the core module and some operations in the operations module. We will start with only single GPU support.
  3. layers - Containing various layers in BNNs.
  4. operations - Containing operations like back-propagation, update, train, classify, test.
  5. wrappers - Containing wrappers for various languages. We will start only with python wrappers. Boost.Python will be used here.
  6. tests - Containing test suites for the above modules. Boost.Test for cuda tests and GoogleTest for the rest.

Note that CUDA tests will not be enabled on CI because they are to costly and Travis CI doesn't provide support GPU enables tests. So, we may have to establish a scheme for obtaining the reports of tests on various PRs before merging.

Let me know of any modifications or clarifications. Thanks.

from bnn.

czgdp1807 avatar czgdp1807 commented on August 16, 2024

Let's proceed forward with the discussion here.
So, we will start with core module. We will be only needing matrices(multidimensional ones like 2D, 3D) as ConvNets are very general in using them. We can build a base class, Matrix and then for multidimensional matrices we will just create class MatrixND with N-sized array of Matrix as it's data member. The on going PR at codezonediitj/adaboost#5 has the code for 2D Matrices.
I was just wondering if we should rename Matrix to Tensor? What do you say?
ping @pristineVedansh
P.S. We don't need Boost.Test as after compiling the .cu files, these can be linked with gtest code.

from bnn.

czgdp1807 avatar czgdp1807 commented on August 16, 2024

We will be required to use 1D layout(Row Major Order) for arbitrary dimensional Tensors.

from bnn.

czgdp1807 avatar czgdp1807 commented on August 16, 2024

We should also, have autodiff operator in operators module which was left out and is crucial. It should be specialised for the BNNs. I will come up with the API design of Tensors in a separate issue.

from bnn.

Related Issues (8)

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.