EEE776 Optical Neural Network