An interactive web-based tool for visualizing and understanding neural networks in real-time. Built with Next.js, TypeScript, and TailwindCSS.
-
Interactive Neural Network Visualization
- Real-time visualization of network architecture
- Dynamic node and connection rendering
- Weight and bias visualization
- Forward and backward pass animation
-
Training Visualization
- Live training progress monitoring
- Loss function plotting
- Prediction visualization
- Step-by-step training mode
-
Customizable Architecture
- Adjustable number of layers
- Configurable neurons per layer
- Multiple activation functions
- Adjustable learning rate
-
Dataset Generation
- Custom function input
- Automatic dataset generation
- Train/test split visualization
- Support for various mathematical functions
- Node.js 16.x or later
- npm or yarn
- Clone the repository:
git clone https://github.com/JHM69/easy-nn.git
cd easy-nn
- Install dependencies:
npm install
# or
yarn install
- Start the development server:
npm run dev
# or
yarn dev
- Open http://localhost:3000 in your browser
- Frontend Framework: Next.js 13 with App Router
- Language: TypeScript
- Styling: TailwindCSS
- State Management: React Hooks
- Neural Network: Custom implementation with automatic differentiation
- Neural Network Visualizer: Interactive visualization of network architecture
- Training Visualizer: Real-time training progress and metrics
- Function Input: Mathematical function parser and dataset generator
- Network Architecture: Customizable network structure
The network implements automatic differentiation using the chain rule of calculus for efficient gradient calculation during backpropagation. Each Value node in the computation graph tracks its own gradient.
-
Educational
- Understanding neural network architectures
- Visualizing training process
- Learning backpropagation
-
Research
- Quick prototyping of network architectures
- Visual debugging of training issues
- Parameter tuning visualization
-
Development
- Testing different network configurations
- Validating training approaches
- Performance visualization
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature
) - Commit your changes (
git commit -m 'Add some AmazingFeature'
) - Push to the branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
Developed by @jhm69
If you have any questions or run into issues, please open an issue in the GitHub repository.
Made with ❤️ by Jahangir Hossain