I want to support PyTorch, and potentially others in future.
Ways of adding support:
First pass; make implementations conditional. Disadvantage: file length gets long. Advantage: all implementations of each algorithm are in the one file.
Replicate directory structure, and have a root. So callbacks.py becomes callbacks/__init__.py which just contains imports based off conditions (like this 'first pass' commit), and callbacks/tf_keras & callbacks/torch are created. Disadvantage: explosion of files.
Abstract classes, separated into 3 repositories, one repo for tensorflow, one for PyTorch, and one central one that imports them all
Create wrappers for every framework feature, so the same function call can happen regardless of ML framework/library (let's not do this!)
I want to support PyTorch, and potentially others in future.
Ways of adding support:
callbacks.py
becomescallbacks/__init__.py
which just contains imports based off conditions (like this 'first pass' commit), andcallbacks/tf_keras
&callbacks/torch
are created. Disadvantage: explosion of files.What do you think?