OptNet: Differentiable Optimization as a Layer in Neural Networks | Synapse