Giter VIP home page Giter VIP logo

neo's Introduction


neo

GitHub release (latest by date including pre-releases) GitHub Workflow Status License

neo is the module for working with matrices, ndarrays, tensors and linear algebra in deno. Accelerated using WebGPU and WASM it runs anywhere a browser runs.

Maintainers

Other

Contribution

Pull request, issues and feedback are very welcome. Code style is formatted with deno fmt and commit messages are done following Conventional Commits spec.

Licence

Copyright 2021, the denosaurs team. All rights reserved. MIT license.

neo's People

Contributors

carrotzrule123 avatar eliassjogreen avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

neo's Issues

Tests

Final goal is 100% coverage!

Frontend interface

For Neo to become a truly awesome project we need a truly awesome programming experience, how do we do that? With a nice interface exposing backend-agnostic methods and operations.

I propose we take inspiration from projects like numpy, julia, matlab and tfjs.

For now I think the most important thing we need an interface for is ndarrays and different variations of the ndarray such as tensors and matrix.

Clustering

Support for clustering multiple agents using RPC and the execution graph somehow.

GPU wgsl code error

Supported features: depth-clip-control, texture-compression-bc, texture-compression-etc2, texture-compression-astc, address-mode-clamp-to-border, texture-adapter-specific-format-features, clear-texture
error: Uncaught (in promise) WebGPUValidationError: 
Shader '' parsing error: expected ',', found ';'
  β”Œβ”€ wgsl:3:17
  β”‚
3 β”‚   inputSize: u32;
  β”‚                 ^ expected ','

: expected ',', found ';'
      const err = new Error(error.value ?? "unknown");
                  ^
    at InnerGPUDevice.proto.pushError (https://crux.land/api/get/4ZZB5m.ts:7:19)
    at GPUDevice.createShaderModule (deno:ext/webgpu/01_webgpu.js:1237:14)
    at WebGPUBackend.register (https://raw.githubusercontent.com/denosaurs/neo/main/backend/webgpu/backend.ts:52:32)
    at feedForward (https://deno.land/x/[email protected]/src/gpu/kernels/feedforward.ts:19:34)
    at BaseGPULayer.feedForward (https://deno.land/x/[email protected]/src/gpu/layers/base.ts:118:11)
    at GPUNetwork.feedForward (https://deno.land/x/[email protected]/src/gpu/network.ts:51:27)
    at GPUNetwork.train (https://deno.land/x/[email protected]/src/gpu/network.ts:111:20)
    at async NeuralNetwork.train (https://deno.land/x/[email protected]/src/mod.ts:60:5)
    at async file:///home/erfanium/Documents/deno_mnist/sample.ts:28:1

Code:

import { NeuralNetwork } from "https://deno.land/x/[email protected]/mod.ts";
import { DataSet } from "https://deno.land/x/[email protected]/src/types.ts";
import { loadTest, loadTrain } from "./loader.ts";

const [x, y] = await loadTrain("data");
const trainData: DataSet[] = [];

for (let i = 0; i < 10; i++) {
  trainData.push({
    inputs: x[i],
    outputs: [y[i] / 10],
  });
}

const net = await new NeuralNetwork({
  hidden: [
    { size: 10, activation: "sigmoid" },
  ],
  cost: "crossentropy",
  output: { size: 1, activation: "sigmoid" },
  input: {
    type: "f32",
  },
  silent: false,
}).setupBackend(true, false);

await net.train(
  trainData,
  200,
  1,
  0.1,
);

deno 1.24.2

Threaded cpu backend

Support for multiple parallel threads running wasm, intelligently constructing a compute tree and automatically executing it maximally parallel.

Execution graph

A way to construct a graph of operations from A to Z automatically parallelizing, threading and utilizing the resources available.

Examples

You heard me, examples for everything and actual example applications! Like a NN or a linear regression or something, if possible it should be visual because my ape brain likes pretty graphs and colors!

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.