We could consider implementing different SDM variants using pipelines in a similar way to scikit-learn.
This would require that each element has compatible interfaces (for example a process or __call__ function, in scikit learn they are called transform or fit)
In this pipeline logic, the output of one element would always be passed to the respective processing method of the next class.
analysis_step = Analyzer(parametrization_analyzer)
output_analysis = analysis_step(input_signal)
synthesis_step = Synthesizer(parametrization_synthesizer)
output_signal = synthesis_step(output_analysis)
pipeline = SDMPipeline(analysis_step, synthesis_step, postprocessor, post-processor_2)
output_signal = pipeline(input_signal)
pipeline = sdm_classic(parameters)
output = pipeline(input)
We could consider implementing different SDM variants using pipelines in a similar way to scikit-learn.
This would require that each element has compatible interfaces (for example a
processor__call__function, in scikit learn they are calledtransformorfit)In this pipeline logic, the output of one element would always be passed to the respective processing method of the next class.