develop free website

Check out my Github!

Mobirise

CANSSI National Case Study Competition 2019

Used Python's Tensorflow to predict ferry delays in British Columbia. My goal for this project was to introduce myself to Tensorflow and how to use it.

Mobirise

C++ Gradient Descent Neural Network

Created a producer and consumer neural network in C++ to aid my understanding of the fundamentals machine learning.

Mobirise

Lidar Distance Alarm

Connected a Garmin Lidar Lite to a Beaglebone Black using I2C to create an alarm when distance is below a certain threshold.

I don't have this on my github but you can read about it in more detail below, 

Timeline

A more detailed description of each project, in reverse chronological order

2 October 2019

CANSSI NCSC 2019

Given 50,000 entries of training data about ferry trips in BC, predict the probability of delayed arrival for the following 12,000 trips. For this project I worked with a partner and we used Python's Tensorflow to train a neural network to predict the probability of delay. This project (and all the details about the neural network we made) can be found here on my Github.

10 January 2019

Gradient Descent Neural Network

Written in C++ with the purpose being to gain an understanding as to exactly how neural networks work, this network in particular learned to read hand written digits. The data was provided by MNIST, for which I wrote a small C program to swap the endianness of the data and parse it for the neural network (this project can be found here). Upon startup, the neural network forks into two processes to apply a producer and consumer model to my network. This is to say that while the child process is using the parser program to load the data into the shared memory, the parent process is using the gradient to modify the weights of the neurons throughout the network. The shared memory between the child and parent is explicitely handled by an object specifically meant for handling the digits read, and thus this object handles the mutex to ensure that the read/write operations happen aren't interfereing with one another. This project can be found here on my Github.

15 December 2017

Lidar Distance Alarm

This one was a little more abstract. I purchased a Garmin Lidar Lite and a BeagleBone Black hosting an ARM processor. After reading documentation on the BeagleBone and the Lidar I found the I2C communication frequency differed between the two pieces, so I altered the device tree files on the BeagleBoard to match that of the Lidar and used C to implement a program which spawned an alarm when the lidar read a distance shorter than a specified threshold. 

Check out my Github!