This repository contains a simple implementation of a Recurrent Neural Network (RNN) using NumPy. It is designed to demonstrate the fundamentals of RNNs, including forward propagation, backpropagation through time (BPTT), and sequence generation.
1. DataReader Class: Prepares text data for training by tokenizing, encoding, and batching.
2. RNN Class: Implements an RNN model with:
- Xavier initialization for weights.
- Forward propagation.
- Backpropagation through time.
- Adagrad optimization for parameter updates.
- Sequence prediction capability.
3. Training Loop: Includes a training process with live plotting of the training loss.
- Python 3.x
- Numpy
- Matplotlib
- Jupyter Notebook