Skip to content
Snippets Groups Projects
Commit df4792ad authored by Tiago de Freitas Pereira's avatar Tiago de Freitas Pereira
Browse files

Fixed the scoring function

parent 9e460bd8
No related branches found
No related tags found
1 merge request!180[dask] Preparing bob.bio.base for dask pipelines
Pipeline #38440 failed
......@@ -96,7 +96,6 @@ class BioAlgorithm(metaclass=ABCMeta):
# a sampleset either after or before scoring.
# To be honest, this should be the default behaviour
retval = []
for subprobe_id, (s, parent) in enumerate(zip(data, sampleset.samples)):
# Creating one sample per comparison
subprobe_scores = []
......@@ -104,7 +103,9 @@ class BioAlgorithm(metaclass=ABCMeta):
r for r in biometric_references if r.key in sampleset.references
]:
score = self.score(ref.data, s)
data = make_score_line(ref.subject, sampleset.subject, sampleset.path, score)
data = make_four_colums_score(
ref.subject, sampleset.subject, sampleset.path, score
)
subprobe_scores.append(Sample(data, parent=ref))
# Creating one sampleset per probe
......@@ -195,32 +196,23 @@ class Database(metaclass=ABCMeta):
pass
def make_score_line(
def make_four_colums_score(
biometric_reference_subject, probe_subject, probe_path, score,
):
data = "{0} {1} {2} {3}\n".format(
biometric_reference_subject,
probe_subject,
probe_path,
score,
biometric_reference_subject, probe_subject, probe_path, score,
)
return data
def save_scores_four_columns(path, probe):
def create_score_delayed_sample(path, probe):
"""
Write scores in the four columns format
"""
with open(path, "w") as f:
for biometric_reference in probe.samples:
line = make_score_line(
biometric_reference.subject,
probe.subject,
probe.path,
biometric_reference.data,
)
f.write(line)
for score_line in probe.samples:
f.write(score_line.data)
def load():
with open(path) as f:
......
......@@ -4,7 +4,7 @@ import bob.io.base
import os
import functools
import dask
from .abstract_classes import save_scores_four_columns
from .abstract_classes import create_score_delayed_sample
class BioAlgCheckpointMixin(CheckpointMixin):
......@@ -61,9 +61,7 @@ class BioAlgCheckpointMixin(CheckpointMixin):
else:
# If sample already there, just load
delayed_enrolled_sample = self.load(path)
delayed_enrolled_sample.key = sampleset.key
delayed_enrolled_sample.subject = sampleset.subject
delayed_enrolled_sample = self.load(sampleset, path)
return delayed_enrolled_sample
......@@ -76,9 +74,9 @@ class BioAlgCheckpointMixin(CheckpointMixin):
for s in scored_sample_set:
# Checkpointing score
path = os.path.join(self.score_dir, str(s.path) + ".txt")
bob.io.base.create_directories_safe(os.path.dirname(path))
os.makedirs(os.path.dirname(path), exist_ok=True)
delayed_scored_sample = save_scores_four_columns(path, s)
delayed_scored_sample = create_score_delayed_sample(path, s)
s.samples = [delayed_scored_sample]
return scored_sample_set
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment