Make profiling return pre- and post-optimization plots (up to 4 plots in total)
Created by: maksgraczyk
Currently, hls4ml.model.profiling.numerical()
returns 2 profiling plots, most often showing HLSModel and Keras/PyTorch/... layers with HLSModel data types overlaid. These may be confusing because hls4ml applies optimizations resulting in differences between final HLSModel and Keras/PyTorch/... layers.
This PR attempts to resolve this problem by making hls4ml.model.profiling.numerical()
return up to 4 plots instead of 2: predominantly weights of HLSModel layers before and after optimizations + activations/outputs of HLSModel/Keras/PyTorch/... layers before and after optimizations.