End-to-end Learning of Deterministic Decision Trees