Enables calculation of tensors 'on the fly' by computing and caching weights on a per-layer basis.
Passed evaluation tests at 250 fps (approximately same as base model, uncompressed)
Separates weight calculation into matrix multiplication involving full contiguous rows, and remainder of non-full rows (i.e. up to 3 operations in total, one for non-full starting row, one for full rows, and another for remaining non-full end row)
Adds validation set evaluation
Adds metric tracking, logging, and plotting
See TODO.md for additional items needed for next iteration of streaming weight calculation
See TODO.md for additional items needed for next iteration of streaming weight calculation