Skip to content
Snippets Groups Projects
Commit 48ebdccd authored by André Anjos's avatar André Anjos :speech_balloon:
Browse files

[inferencer] Remove "logger" from function parameters, use module version

parent 7381c416
No related branches found
No related tags found
1 merge request!12Streamlining
Pipeline #38781 passed
...@@ -102,7 +102,7 @@ def batch_metrics(predictions, ground_truths, names, output_folder): ...@@ -102,7 +102,7 @@ def batch_metrics(predictions, ground_truths, names, output_folder):
return batch_metrics return batch_metrics
def save_probability_images(predictions, names, output_folder, logger): def save_probability_images(predictions, names, output_folder):
""" """
Saves probability maps as image in the same format as the test image Saves probability maps as image in the same format as the test image
...@@ -118,10 +118,6 @@ def save_probability_images(predictions, names, output_folder, logger): ...@@ -118,10 +118,6 @@ def save_probability_images(predictions, names, output_folder, logger):
output_folder : str output_folder : str
output path output path
logger : :py:class:`logging.Logger`
python logger
""" """
images_subfolder = os.path.join(output_folder, "images") images_subfolder = os.path.join(output_folder, "images")
...@@ -136,6 +132,33 @@ def save_probability_images(predictions, names, output_folder, logger): ...@@ -136,6 +132,33 @@ def save_probability_images(predictions, names, output_folder, logger):
img.save(fullpath) img.save(fullpath)
def save_hdf(predictions, names, output_folder):
"""
Saves probability maps as image in the same format as the test image
Parameters
----------
predictions : :py:class:`torch.Tensor`
tensor with pixel-wise probabilities
names : list
list of file names
output_folder : str
output path
"""
hdf5_subfolder = os.path.join(output_folder, "hdf5")
if not os.path.exists(hdf5_subfolder):
os.makedirs(hdf5_subfolder)
for j in range(predictions.size()[0]):
img = predictions.cpu().data[j].squeeze(0).numpy()
filename = "{}.hdf5".format(names[j].split(".")[0])
fullpath = os.path.join(hdf5_subfolder, filename)
logger.info("saving {}".format(filename))
fulldir = os.path.dirname(fullpath)
if not os.path.exists(fulldir):
os.makedirs(fulldir)
bob.io.base.save(img, fullpath)
def do_inference(model, data_loader, device, output_folder=None): def do_inference(model, data_loader, device, output_folder=None):
""" """
Runs inference and calculate metrics Runs inference and calculate metrics
...@@ -187,14 +210,14 @@ def do_inference(model, data_loader, device, output_folder=None): ...@@ -187,14 +210,14 @@ def do_inference(model, data_loader, device, output_folder=None):
logger.info("Batch time: {:.5f} s".format(batch_time)) logger.info("Batch time: {:.5f} s".format(batch_time))
b_metrics = batch_metrics( b_metrics = batch_metrics(
probabilities, ground_truths, names, results_subfolder, logger probabilities, ground_truths, names, results_subfolder
) )
metrics.extend(b_metrics) metrics.extend(b_metrics)
# Create probability images # Create probability images
save_probability_images(probabilities, names, output_folder, logger) save_probability_images(probabilities, names, output_folder)
# save hdf5 # save hdf5
save_hdf(probabilities, names, output_folder, logger) save_hdf(probabilities, names, output_folder)
# DataFrame # DataFrame
df_metrics = pd.DataFrame( df_metrics = pd.DataFrame(
......
...@@ -35,7 +35,6 @@ class Tester(unittest.TestCase): ...@@ -35,7 +35,6 @@ class Tester(unittest.TestCase):
self.ground_truths, self.ground_truths,
self.names, self.names,
self.output_folder, self.output_folder,
self.logger,
) )
self.assertEqual(len(bm), 2 * 100) self.assertEqual(len(bm), 2 * 100)
for metric in bm: for metric in bm:
......
...@@ -21,7 +21,7 @@ import logging ...@@ -21,7 +21,7 @@ import logging
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
def batch_metrics(predictions, ground_truths, names, output_folder, logger): def batch_metrics(predictions, ground_truths, names, output_folder):
""" """
Calculates metrics on the batch and saves it to disc Calculates metrics on the batch and saves it to disc
...@@ -35,8 +35,6 @@ def batch_metrics(predictions, ground_truths, names, output_folder, logger): ...@@ -35,8 +35,6 @@ def batch_metrics(predictions, ground_truths, names, output_folder, logger):
list of file names list of file names
output_folder : str output_folder : str
output path output path
logger : :py:class:`logging.Logger`
python logger
Returns Returns
------- -------
...@@ -141,7 +139,7 @@ def do_eval( ...@@ -141,7 +139,7 @@ def do_eval(
probabilities = to_tensor(probabilities) probabilities = to_tensor(probabilities)
b_metrics = batch_metrics( b_metrics = batch_metrics(
probabilities, ground_truths, names, results_subfolder, logger probabilities, ground_truths, names, results_subfolder
) )
metrics.extend(b_metrics) metrics.extend(b_metrics)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment