Please ⭐ (star) or 🍴 (fork) to show attribution or gratitude, as always.
Heavily inspired by https://github.com/Skeletonxf/easy-ml-mnist-wasm-example.
Credit Skeletonxf for the original wasm example and classic WebWorker threading implementation.
From the above project's README.md:
# Easy ML MNIST Web Assembly Example
Simple MNIST Neural Network scaffold for demonstrating Rust code in the browser.
Uses `wasm-pack` to build the web assembly. The webpage can be accessed by
running the included Node.js server.
## About
This project is a template for doing machine learning in the browser via Rust
code loaded as WebAssembly. The code trains a simple feedforward neural network
on a subset of the MNIST data using [Easy ML](https://crates.io/crates/easy-ml)
with mini batching and automatic differentiation.
This repository utilizes the above scaffold with a revamped frontend implemented in Vue.js. As the name suggests, instead of MNIST Number identification, Myers Briggs Type Indicators (MBTIs) are focused on.
- Procedurally generated 16x16 pixel heatmaps with validated labels have been provided
- Network weights for a network trained to 7 epochs have been provided, 0% loss.
- Vue Components replecate the scaffold's User Interface functionality with TypeScript
- WebWorker and data fetching ported from JavaScript to TypeScript
- Vue.js niceties such as prettier ensure that the code smell is reduced
- Generate images procedurally in frontend from user text input
- Imutable Storage with Aleo Blockchain based contract deployed development node
- Demonstrate ability to share Machine Learning statistics without exposing Text Input
- Unit Tests
- E2E Tests
- Progressive Web Application (PWA) full support for offline-mode
- Final implementation deployed to TestNet V3
Recommended: Set prettier as the default formatter for saving the files in this project.
npm install
npm run serve
npm run build
npm run test:unit
npm run test:e2e
npm run lint