Heterogeneous Computing Applied to Deep Learning