Optimisation For Efficient Deep Learning