End-to-end deep learning