As discussed internally, we've decided to move most of the per-algorithm complexity to a custom pl.LightningModule for each approach. The goal is that modules can be used interchangeably, so they should all have standardized inputs and outputs for the main methods that would be used for training or inference tasks. This may require a small amount of pre- or post-processing within each module's implementation. At first glance, it looks like the main methods to standardize are forward and training_step.
Additionally, it appears that there is the concept of a pl.Model. It would be good to see if this concept alone is sufficient for implementing different approaches.
As discussed internally, we've decided to move most of the per-algorithm complexity to a custom
pl.LightningModule
for each approach. The goal is that modules can be used interchangeably, so they should all have standardized inputs and outputs for the main methods that would be used for training or inference tasks. This may require a small amount of pre- or post-processing within each module's implementation. At first glance, it looks like the main methods to standardize areforward
andtraining_step
.Additionally, it appears that there is the concept of a
pl.Model
. It would be good to see if this concept alone is sufficient for implementing different approaches.