This project was made as the final project for E0 251 - Data Structrues and Algorithms course in Spring 2021 at Indian Institute of Science (IISc) Bangalore, India.
The basic idea in a computational graph is to express some neural network model as a directed graph expressing a sequence of computational steps. Each step in the sequence corresponds to a vertex in the computational graph, where each vertex takes some inputs and produces some output as a function of its inputs. In this project, I have built such a computational graph for a feedforward neural network model, which achieves two tasks: Forward Pass, and Backward Pass. To create such a computational graph I have made use of graph data structure and for implementing forward and backward passes, I have used a topological ordering algorithm. Forward pass is the first phase where we get predictions as output, and backward pass is the second phase where we use the outputs to update weights in the model moving backward in the graph so as to get better predictions in the next iteration, and the process of forward and backward pass keeps continuing until we achieve our target value.
- GCC Compiler 10.0+ version
- C++
- Graph Data Structure
- Kahn's Algorithm for Topological Ordering
- Forward Propagation
- Backward Propagation
A dummy dataset was used with 9 dimensional feature set and 10 number of classes.
In the above image we can see that the model is updating its parameters over the epochs in order to make the accurate prediction.
- Palash Mahendra Kamble - palash04