ben-hayes / beat-tracking-tcn

An implementation of Davies & Böck's beat-tracking temporal convolutional network
42 stars 17 forks source link

The evaluation functions provided in beat_tracking_tcn/utils/evaluation.py are not really compatible as evaluation_functions in evaluate of the training.py. #7

Open nikhilsos opened 8 months ago

nikhilsos commented 8 months ago

I wanted to see the f_measure during evaluation but the code does not seem to work. The evaluation functions provided in beat_tracking_tcn/utils/evaluation.py are not really compatible as evaluation_functions in evaluate of the training.py. Even though it is mentioned that "A list of functions to call for evaluation. Functions should take arguments (prediction, target). (default: {None}) " , the dataloader sends beat_vector and not the beat timings in seconds as target and the model also predicts a beat vector instead of timings in seconds, but the functions in evaluation.py calculate the absolute differences between the lists/ndarrays and count if within tolerance which again is in seconds. Am I not getting it correctly? am I doing something wrong or are the functions at evaluation.py not meant to be used as evaluation_functions when calling evaluate? If they are supposed to be used in the evaluate of training,py, should they not work with tensors instead of lists or ndarrays? I am confused, can I get a little help?