Open the file exercise.py
. You are asked to fill the methods and
functions that currently raise NotImplementedError
:
Backbone.__init__
Backbone.forward
train
test
The first thing to do is to implement a 2D UNet. However, this UNet must be flexibly parameterized. In particular, we ask that the number of levels, number of features per layer and number of convolutions per layer be switcheable by the user. Although this is not required, you may optionally parameterize the type of pooling/unpooling operation (bilinear interpolation, strided convolution, max pooling) and the activation function.
The second thing to do is to implement train
and test
functions
for a voxelmorph registration network,
that uses your UNet as a backbone. The VoxelMorph
class it already written,
but you will need to write your own training loop, as well as a test
function. You are free to parameterize the training loop as you wish.
However, you are asked to use the train/eval/test dataloaders that are
provided.
To submit your solution, please open a pull request.
If you've never coded in PyTorch before, you'll want to read some of the PyTorch tutorials. We recommend:
In this case, doing this excercise will take a bit of time, but it will be a good learning exercise.
If you are familiar with PyTorch and you've already built and trained models, it should be much faster. In this case, we recommend focusing on code quality and readability.