I can send you in a private gist, [the whole training pipeline] because code is part of an on-going kaggle comp (hence it’s not small either but easily readable);
Apologies for the inconvenience;
Thanks;