[hackathon] Add differentially-private cifar10 training (#344)
Fixes #340.
This PR adds an example of differentially-private (DP) training on
the cifar10 dataset. In reality this uses resnet18 as the model and
example inputs with the size of those found in the cifar10 dataset.
The model is not tracable or scriptable. This is because the DP
training relies on autograd hooks and those cannot be traced through or
scripted yet.
Test Plan:
All of the following pass, is there anywhere else I should add a test?
- `python test.py -k test_opacus_cifar10_example_cpu`
- `python test.py -k test_opacus_cifar10_eval_cpu`
- `python test.py -k test_opacus_cifar10_train_cpu`