diff --git a/bob/learn/tensorflow/dataset/__init__.py b/bob/learn/tensorflow/dataset/__init__.py
index ab34eb789855f2fcdbf8cda83d356d80b1165530..0612be7aa5ceab6281d2a5975b4617eca041feb8 100644
--- a/bob/learn/tensorflow/dataset/__init__.py
+++ b/bob/learn/tensorflow/dataset/__init__.py
@@ -1,6 +1,8 @@
-import tensorflow as tf
-import numpy
 import os
+
+import numpy
+import tensorflow as tf
+
 import bob.io.base
 
 DEFAULT_FEATURE = {
diff --git a/bob/learn/tensorflow/dataset/generator.py b/bob/learn/tensorflow/dataset/generator.py
index a8510487eda8a6f6e483a3c4cc298e9f0fc4870c..7e68c0246eb227862f6d79214c1000caaa6a8561 100644
--- a/bob/learn/tensorflow/dataset/generator.py
+++ b/bob/learn/tensorflow/dataset/generator.py
@@ -1,6 +1,7 @@
-import tensorflow as tf
-import random
 import logging
+import random
+
+import tensorflow as tf
 
 logger = logging.getLogger(__name__)
 
diff --git a/bob/learn/tensorflow/dataset/image.py b/bob/learn/tensorflow/dataset/image.py
index 239d83c251e856e8e2c527e9d7782390b3a87139..d805a44fc4992f6517da98590f9abf829fcbdaee 100644
--- a/bob/learn/tensorflow/dataset/image.py
+++ b/bob/learn/tensorflow/dataset/image.py
@@ -2,9 +2,12 @@
 # vim: set fileencoding=utf-8 :
 # @author: Tiago de Freitas Pereira <tiago.pereira@idiap.ch>
 
-import tensorflow as tf
 from functools import partial
-from . import append_image_augmentation, from_filename_to_tensor
+
+import tensorflow as tf
+
+from . import append_image_augmentation
+from . import from_filename_to_tensor
 
 
 def shuffle_data_and_labels_image_augmentation(
diff --git a/bob/learn/tensorflow/dataset/tfrecords.py b/bob/learn/tensorflow/dataset/tfrecords.py
index 32f732733eb1d5d34c1a630f0900a24c52a6309e..1000f273906cefe234d7b6a050ac2299363e1536 100644
--- a/bob/learn/tensorflow/dataset/tfrecords.py
+++ b/bob/learn/tensorflow/dataset/tfrecords.py
@@ -4,16 +4,15 @@ from __future__ import absolute_import
 from __future__ import division
 from __future__ import print_function
 
-from functools import partial
 import json
 import logging
 import os
+from functools import partial
 
 import tensorflow as tf
 
 from . import DEFAULT_FEATURE
 
-
 logger = logging.getLogger(__name__)
 TFRECORDS_EXT = ".tfrecords"
 
diff --git a/bob/learn/tensorflow/gan/__init__.py b/bob/learn/tensorflow/gan/__init__.py
index 502898e8d514775462a0e9de662ffab6c6cc4c25..7d2a53c0a1316b4b0bdd43a79f00955a3934b665 100644
--- a/bob/learn/tensorflow/gan/__init__.py
+++ b/bob/learn/tensorflow/gan/__init__.py
@@ -1,2 +1,2 @@
-from . import spectral_normalization
 from . import losses
+from . import spectral_normalization
diff --git a/bob/learn/tensorflow/gan/spectral_normalization.py b/bob/learn/tensorflow/gan/spectral_normalization.py
index a2f228f07f66016ac0cc0f01a7d5f2831d4d5be4..7c0d6a664d0ed9c228c308010c07bfee86bc50d0 100644
--- a/bob/learn/tensorflow/gan/spectral_normalization.py
+++ b/bob/learn/tensorflow/gan/spectral_normalization.py
@@ -29,7 +29,8 @@ import re
 
 from tensorflow.python.framework import dtypes
 from tensorflow.python.framework import ops
-from tensorflow.python.keras.engine import base_layer_utils as keras_base_layer_utils
+from tensorflow.python.keras.engine import \
+    base_layer_utils as keras_base_layer_utils
 from tensorflow.python.ops import array_ops
 from tensorflow.python.ops import init_ops
 from tensorflow.python.ops import math_ops
diff --git a/bob/learn/tensorflow/image/__init__.py b/bob/learn/tensorflow/image/__init__.py
index 02ce0f96ec08647cdb3effcdc6b699f8a3260752..c8a2e5ae2e1795bd6dc7b66befe78c635d3fb522 100644
--- a/bob/learn/tensorflow/image/__init__.py
+++ b/bob/learn/tensorflow/image/__init__.py
@@ -1,4 +1,6 @@
-from .filter import gaussian_kernel, GaussianFilter
+from .filter import GaussianFilter
+from .filter import gaussian_kernel
+
 
 # gets sphinx autodoc done right - don't remove it
 def __appropriate__(*args):
diff --git a/bob/learn/tensorflow/loss/BaseLoss.py b/bob/learn/tensorflow/loss/BaseLoss.py
index 8380ec17efee5fe8c705055accd1642b05fc3f9f..f048b88a704a9b3eeebcabaa2df3a33404e757ba 100644
--- a/bob/learn/tensorflow/loss/BaseLoss.py
+++ b/bob/learn/tensorflow/loss/BaseLoss.py
@@ -3,6 +3,7 @@
 # @author: Tiago de Freitas Pereira <tiago.pereira@idiap.ch>
 
 import logging
+
 import tensorflow as tf
 
 logger = logging.getLogger(__name__)
diff --git a/bob/learn/tensorflow/loss/ContrastiveLoss.py b/bob/learn/tensorflow/loss/ContrastiveLoss.py
index 4e1a22eb1f38f10752302ed2594b8313eb5e64c6..416c8e583a560c0855b84eaeebe85e43ae05ce26 100644
--- a/bob/learn/tensorflow/loss/ContrastiveLoss.py
+++ b/bob/learn/tensorflow/loss/ContrastiveLoss.py
@@ -3,7 +3,9 @@
 # @author: Tiago de Freitas Pereira <tiago.pereira@idiap.ch>
 
 import logging
+
 import tensorflow as tf
+
 from bob.learn.tensorflow.utils import compute_euclidean_distance
 
 logger = logging.getLogger(__name__)
diff --git a/bob/learn/tensorflow/loss/StyleLoss.py b/bob/learn/tensorflow/loss/StyleLoss.py
index 75054a5aced8c124b60cfcb889ef4d5499f58c56..46028aa28517cb282885dbaed8b821b36aba75ac 100644
--- a/bob/learn/tensorflow/loss/StyleLoss.py
+++ b/bob/learn/tensorflow/loss/StyleLoss.py
@@ -2,9 +2,10 @@
 # vim: set fileencoding=utf-8 :
 # @author: Tiago de Freitas Pereira <tiago.pereira@idiap.ch>
 
+import functools
 import logging
+
 import tensorflow as tf
-import functools
 
 logger = logging.getLogger(__name__)
 
diff --git a/bob/learn/tensorflow/loss/__init__.py b/bob/learn/tensorflow/loss/__init__.py
index 215237f0145e141c39c5ae84e09f5ea6a0cc5031..348d773fa1fd3c1f404d2fc2f5aad27fd75c4676 100644
--- a/bob/learn/tensorflow/loss/__init__.py
+++ b/bob/learn/tensorflow/loss/__init__.py
@@ -1,13 +1,17 @@
 # from .BaseLoss import mean_cross_entropy_loss, mean_cross_entropy_center_loss
-from .ContrastiveLoss import contrastive_loss
-from .TripletLoss import triplet_loss, triplet_average_loss, triplet_fisher_loss
-from .StyleLoss import linear_gram_style_loss, content_loss, denoising_loss
-from .vat import VATLoss
-from .pixel_wise import PixelWise
 from .center_loss import CenterLoss
+from .ContrastiveLoss import contrastive_loss
 from .mmd import *
 from .pairwise_confusion import total_pairwise_confusion
+from .pixel_wise import PixelWise
+from .StyleLoss import content_loss
+from .StyleLoss import denoising_loss
+from .StyleLoss import linear_gram_style_loss
+from .TripletLoss import triplet_average_loss
+from .TripletLoss import triplet_fisher_loss
+from .TripletLoss import triplet_loss
 from .utils import *
+from .vat import VATLoss
 
 
 # gets sphinx autodoc done right - don't remove it
diff --git a/bob/learn/tensorflow/loss/center_loss.py b/bob/learn/tensorflow/loss/center_loss.py
index d419a20f6ddb999878d479c744eea30cfc854fc1..0d379cd799d9e8508597282926c3501a603656b2 100644
--- a/bob/learn/tensorflow/loss/center_loss.py
+++ b/bob/learn/tensorflow/loss/center_loss.py
@@ -1,5 +1,6 @@
 import tensorflow as tf
 
+
 # TODO(amir): replace parent class with tf.Module in tensorflow 1.14 and above.
 # * pass ``name`` to parent class
 # * replace get_variable with tf.Variable
diff --git a/bob/learn/tensorflow/loss/pairwise_confusion.py b/bob/learn/tensorflow/loss/pairwise_confusion.py
index f5309bfeed2fc240f4f6733c588c7dca087a304c..6c4c9613b70bea78414beefe842b930dfb608059 100644
--- a/bob/learn/tensorflow/loss/pairwise_confusion.py
+++ b/bob/learn/tensorflow/loss/pairwise_confusion.py
@@ -1,5 +1,7 @@
 import tensorflow as tf
-from ..utils import pdist_safe, upper_triangle
+
+from ..utils import pdist_safe
+from ..utils import upper_triangle
 
 
 def total_pairwise_confusion(prelogits, name=None):
diff --git a/bob/learn/tensorflow/loss/pixel_wise.py b/bob/learn/tensorflow/loss/pixel_wise.py
index 4a11e65630abc7c2113853ef3d733595dff33875..09cb4c41469596f721bb4d04a5db600603d06ecb 100644
--- a/bob/learn/tensorflow/loss/pixel_wise.py
+++ b/bob/learn/tensorflow/loss/pixel_wise.py
@@ -1,10 +1,9 @@
-from ..dataset import tf_repeat
-from .utils import (
-    balanced_softmax_cross_entropy_loss_weights,
-    balanced_sigmoid_cross_entropy_loss_weights,
-)
 import tensorflow as tf
 
+from ..dataset import tf_repeat
+from .utils import balanced_sigmoid_cross_entropy_loss_weights
+from .utils import balanced_softmax_cross_entropy_loss_weights
+
 
 class PixelWise:
     """A pixel wise loss which is just a cross entropy loss but applied to all pixels"""
diff --git a/bob/learn/tensorflow/loss/vat.py b/bob/learn/tensorflow/loss/vat.py
index e51c24f441a4ee7f5a24834ef7d48ae222ceb6b9..194d54440e62b990962c4a161b58cd35830f0117 100644
--- a/bob/learn/tensorflow/loss/vat.py
+++ b/bob/learn/tensorflow/loss/vat.py
@@ -23,9 +23,10 @@
 # SOFTWARE.
 
 
-import tensorflow as tf
 from functools import partial
 
+import tensorflow as tf
+
 
 def get_normalized_vector(d):
     d /= 1e-12 + tf.reduce_max(
diff --git a/bob/learn/tensorflow/models/alexnet.py b/bob/learn/tensorflow/models/alexnet.py
index 3428aa39635402f31b87b630c994603cd81bc8fd..326abe71a60a5fc9f01ef2ab212d1786a36d4a9f 100644
--- a/bob/learn/tensorflow/models/alexnet.py
+++ b/bob/learn/tensorflow/models/alexnet.py
@@ -62,6 +62,7 @@ def AlexNet_simplified(name="AlexNet", **kwargs):
 
 if __name__ == "__main__":
     import pkg_resources
+
     from bob.learn.tensorflow.utils import model_summary
 
     model = AlexNet_simplified()
diff --git a/bob/learn/tensorflow/models/autoencoder_face.py b/bob/learn/tensorflow/models/autoencoder_face.py
index 7be56d7b056afc423e452963a4bb5278257f4a18..bb92f92c6eb0658e31e6881e38a5794fc9a5a581 100644
--- a/bob/learn/tensorflow/models/autoencoder_face.py
+++ b/bob/learn/tensorflow/models/autoencoder_face.py
@@ -4,6 +4,7 @@ Mohammadi, Amir and Bhattacharjee, Sushil and Marcel, Sebastien, ICASSP 2020
 """
 
 import tensorflow as tf
+
 from bob.learn.tensorflow.models.densenet import densenet161
 
 
@@ -114,6 +115,7 @@ def autoencoder_face(z_dim=256, weight_decay=1e-10, decoder_last_act="tanh"):
 if __name__ == "__main__":
     import pkg_resources
     from tabulate import tabulate
+
     from bob.learn.tensorflow.utils import model_summary
 
     model = ConvDecoder(z_dim=256, weight_decay=1e-9, last_act="tanh", name="Decoder")
diff --git a/bob/learn/tensorflow/models/densenet.py b/bob/learn/tensorflow/models/densenet.py
index 7dfbc8aea0941ab86eb1fc3780d862578d3adf82..bc0f6abd65d1f3c7c9f09c7fe2887aeace1e565b 100644
--- a/bob/learn/tensorflow/models/densenet.py
+++ b/bob/learn/tensorflow/models/densenet.py
@@ -3,6 +3,7 @@ Reference [Densely Connected Convolutional Networks](https://arxiv.org/abs/1608.
 """
 
 import tensorflow as tf
+
 from bob.extension import rc
 
 l2 = tf.keras.regularizers.l2
@@ -448,6 +449,7 @@ class DeepPixBiS(tf.keras.Model):
 if __name__ == "__main__":
     import pkg_resources
     from tabulate import tabulate
+
     from bob.learn.tensorflow.utils import model_summary
 
     def print_model(inputs, outputs):
diff --git a/bob/learn/tensorflow/models/inception.py b/bob/learn/tensorflow/models/inception.py
index a4666b1b331fb8f23532b0d43342483437926175..90d56223fd86d8e9b723a3d723f65d031598508c 100644
--- a/bob/learn/tensorflow/models/inception.py
+++ b/bob/learn/tensorflow/models/inception.py
@@ -144,6 +144,7 @@ def GoogLeNet(*, num_classes=1000, name="GoogLeNet", **kwargs):
 if __name__ == "__main__":
     import pkg_resources
     from tabulate import tabulate
+
     from bob.learn.tensorflow.utils import model_summary
 
     inputs = tf.keras.Input((28, 28, 192), name="input")
diff --git a/bob/learn/tensorflow/models/inception_resnet_v2.py b/bob/learn/tensorflow/models/inception_resnet_v2.py
index 8f15d0b2cb089c721856a9657f45bf56301187e7..dc544b0ffc6726997425ef9d79084802c9748418 100644
--- a/bob/learn/tensorflow/models/inception_resnet_v2.py
+++ b/bob/learn/tensorflow/models/inception_resnet_v2.py
@@ -1,25 +1,24 @@
 # -*- coding: utf-8 -*-
 """Inception-ResNet-V2 MultiScale-Inception-ResNet-V2 models for Keras.
 """
-from tensorflow.keras.models import Model
-from tensorflow.keras.layers import (
-    Activation,
-    BatchNormalization,
-    Concatenate,
-    Conv2D,
-    Dense,
-    Dropout,
-    Input,
-    Lambda,
-    MaxPool2D,
-    AvgPool2D,
-    GlobalAvgPool2D,
-    GlobalMaxPool2D,
-)
-from tensorflow.keras import backend as K
-import tensorflow as tf
 import logging
 
+import tensorflow as tf
+from tensorflow.keras import backend as K
+from tensorflow.keras.layers import Activation
+from tensorflow.keras.layers import AvgPool2D
+from tensorflow.keras.layers import BatchNormalization
+from tensorflow.keras.layers import Concatenate
+from tensorflow.keras.layers import Conv2D
+from tensorflow.keras.layers import Dense
+from tensorflow.keras.layers import Dropout
+from tensorflow.keras.layers import GlobalAvgPool2D
+from tensorflow.keras.layers import GlobalMaxPool2D
+from tensorflow.keras.layers import Input
+from tensorflow.keras.layers import Lambda
+from tensorflow.keras.layers import MaxPool2D
+from tensorflow.keras.models import Model
+
 logger = logging.getLogger(__name__)
 
 
@@ -696,6 +695,7 @@ def MultiScaleInceptionResNetV2(
 if __name__ == "__main__":
     import pkg_resources
     from tabulate import tabulate
+
     from bob.learn.tensorflow.utils import model_summary
 
     def print_model(inputs, outputs, name=None):
diff --git a/bob/learn/tensorflow/models/lenet5.py b/bob/learn/tensorflow/models/lenet5.py
index a868515b897fe2c010cf407b1af44d5fbe352649..8654001bf24c3d5307531465e286f29d8d9c4d89 100644
--- a/bob/learn/tensorflow/models/lenet5.py
+++ b/bob/learn/tensorflow/models/lenet5.py
@@ -32,6 +32,7 @@ def LeNet5_simplified(name="LeNet5", **kwargs):
 
 if __name__ == "__main__":
     import pkg_resources
+
     from bob.learn.tensorflow.utils import model_summary
 
     model = LeNet5_simplified()
diff --git a/bob/learn/tensorflow/models/msu_patch.py b/bob/learn/tensorflow/models/msu_patch.py
index 3cd63ff95facae61a62b83bc7945a93726cad615..21ad7bf98ca0adc7bf2efab14177ff82b2c3531f 100644
--- a/bob/learn/tensorflow/models/msu_patch.py
+++ b/bob/learn/tensorflow/models/msu_patch.py
@@ -67,6 +67,7 @@ def MSUPatch(name="MSUPatch", **kwargs):
 if __name__ == "__main__":
     import pkg_resources
     from tabulate import tabulate
+
     from bob.learn.tensorflow.utils import model_summary
 
     model = MSUPatch()
diff --git a/bob/learn/tensorflow/models/simple_cnn.py b/bob/learn/tensorflow/models/simple_cnn.py
index 82ae65a68e12325d727a6ae9e2e024d12ca7eba7..f4c4ec56f71dbaecec83b0ddf23a0010fb62539a 100644
--- a/bob/learn/tensorflow/models/simple_cnn.py
+++ b/bob/learn/tensorflow/models/simple_cnn.py
@@ -1,15 +1,14 @@
 """A small CNN used for patch-based Face PAD"""
 
-from tensorflow.python.keras import Sequential, Input
-from tensorflow.python.keras.layers import (
-    Conv2D,
-    BatchNormalization,
-    Activation,
-    MaxPool2D,
-    Flatten,
-    Dense,
-    Dropout,
-)
+from tensorflow.python.keras import Input
+from tensorflow.python.keras import Sequential
+from tensorflow.python.keras.layers import Activation
+from tensorflow.python.keras.layers import BatchNormalization
+from tensorflow.python.keras.layers import Conv2D
+from tensorflow.python.keras.layers import Dense
+from tensorflow.python.keras.layers import Dropout
+from tensorflow.python.keras.layers import Flatten
+from tensorflow.python.keras.layers import MaxPool2D
 
 
 def SimpleCNN(input_shape=(28, 28, 3), inputs=None, name="SimpleCNN", **kwargs):
@@ -44,6 +43,7 @@ def SimpleCNN(input_shape=(28, 28, 3), inputs=None, name="SimpleCNN", **kwargs):
 if __name__ == "__main__":
     import pkg_resources
     from tabulate import tabulate
+
     from bob.learn.tensorflow.utils import model_summary
 
     model = SimpleCNN()
diff --git a/bob/learn/tensorflow/script/cache_dataset.py b/bob/learn/tensorflow/script/cache_dataset.py
index 5ec99916e62c1df2feb337f14ef24a618008aa98..db9bcfe6c03670cde34aca2b147fb0a7c4d63a72 100644
--- a/bob/learn/tensorflow/script/cache_dataset.py
+++ b/bob/learn/tensorflow/script/cache_dataset.py
@@ -4,15 +4,17 @@
 from __future__ import absolute_import
 from __future__ import division
 from __future__ import print_function
+
 import logging
+
 import click
 import tensorflow as tf
-from bob.extension.scripts.click_helper import (
-    verbosity_option,
-    ConfigCommand,
-    ResourceOption,
-    log_parameters,
-)
+
+from bob.extension.scripts.click_helper import ConfigCommand
+from bob.extension.scripts.click_helper import ResourceOption
+from bob.extension.scripts.click_helper import log_parameters
+from bob.extension.scripts.click_helper import verbosity_option
+
 from ..utils import is_argument_available
 
 logger = logging.getLogger(__name__)
diff --git a/bob/learn/tensorflow/script/compute_statistics.py b/bob/learn/tensorflow/script/compute_statistics.py
index 3638dee11beb94a7a24f24536bfd2c170db2b97c..91da745821ff5068457511f082b1885e90fb364c 100644
--- a/bob/learn/tensorflow/script/compute_statistics.py
+++ b/bob/learn/tensorflow/script/compute_statistics.py
@@ -4,15 +4,16 @@
 from __future__ import absolute_import
 from __future__ import division
 from __future__ import print_function
+
 import logging
+
 import click
 import numpy as np
-from bob.extension.scripts.click_helper import (
-    verbosity_option,
-    ConfigCommand,
-    ResourceOption,
-    log_parameters,
-)
+
+from bob.extension.scripts.click_helper import ConfigCommand
+from bob.extension.scripts.click_helper import ResourceOption
+from bob.extension.scripts.click_helper import log_parameters
+from bob.extension.scripts.click_helper import verbosity_option
 from bob.learn.tensorflow.dataset.bio import BioGenerator
 
 logger = logging.getLogger(__name__)
diff --git a/bob/learn/tensorflow/script/db_to_tfrecords.py b/bob/learn/tensorflow/script/db_to_tfrecords.py
index 7684c821c00caa7fb8873af499f02a7ccbeb9859..a252a5f6504756c1c2d489dd51d224de116dbf02 100644
--- a/bob/learn/tensorflow/script/db_to_tfrecords.py
+++ b/bob/learn/tensorflow/script/db_to_tfrecords.py
@@ -4,21 +4,19 @@
 from __future__ import absolute_import
 from __future__ import division
 from __future__ import print_function
+
 import logging
 import os
+
 import click
 import tensorflow as tf
-from bob.extension.scripts.click_helper import (
-    verbosity_option,
-    ConfigCommand,
-    ResourceOption,
-    log_parameters,
-)
-from bob.learn.tensorflow.dataset.tfrecords import (
-    tfrecord_name_and_json_name,
-    dataset_to_tfrecord,
-)
 
+from bob.extension.scripts.click_helper import ConfigCommand
+from bob.extension.scripts.click_helper import ResourceOption
+from bob.extension.scripts.click_helper import log_parameters
+from bob.extension.scripts.click_helper import verbosity_option
+from bob.learn.tensorflow.dataset.tfrecords import dataset_to_tfrecord
+from bob.learn.tensorflow.dataset.tfrecords import tfrecord_name_and_json_name
 
 logger = logging.getLogger(__name__)
 
diff --git a/bob/learn/tensorflow/script/eval.py b/bob/learn/tensorflow/script/eval.py
index 003f72f3c6e8235108206f11d801a4bb10cc8dd5..f555f677a6db5e6e9028cf9eebda12a8309b421c 100644
--- a/bob/learn/tensorflow/script/eval.py
+++ b/bob/learn/tensorflow/script/eval.py
@@ -4,24 +4,27 @@
 from __future__ import absolute_import
 from __future__ import division
 from __future__ import print_function
-import click
+
 import logging
 import os
 import shutil
 import sys
-import tensorflow as tf
 import time
+from collections import OrderedDict
+from collections import defaultdict
 from glob import glob
-from collections import defaultdict, OrderedDict
-from ..utils.eval import get_global_step
-from bob.extension.scripts.click_helper import (
-    verbosity_option,
-    ConfigCommand,
-    ResourceOption,
-    log_parameters,
-)
+
+import click
+import tensorflow as tf
+
+from bob.extension.scripts.click_helper import ConfigCommand
+from bob.extension.scripts.click_helper import ResourceOption
+from bob.extension.scripts.click_helper import log_parameters
+from bob.extension.scripts.click_helper import verbosity_option
 from bob.io.base import create_directories_safe
 
+from ..utils.eval import get_global_step
+
 logger = logging.getLogger(__name__)
 
 
diff --git a/bob/learn/tensorflow/script/fit.py b/bob/learn/tensorflow/script/fit.py
index 177d2761bad0c483216db353ff47216a76594e8b..a655bfcae9cfc42fc115680fd8bd7b516ed0e6c0 100644
--- a/bob/learn/tensorflow/script/fit.py
+++ b/bob/learn/tensorflow/script/fit.py
@@ -4,17 +4,18 @@
 from __future__ import absolute_import
 from __future__ import division
 from __future__ import print_function
-import click
+
 import json
 import logging
 import os
+
+import click
 import tensorflow as tf
-from bob.extension.scripts.click_helper import (
-    verbosity_option,
-    ConfigCommand,
-    ResourceOption,
-    log_parameters,
-)
+
+from bob.extension.scripts.click_helper import ConfigCommand
+from bob.extension.scripts.click_helper import ResourceOption
+from bob.extension.scripts.click_helper import log_parameters
+from bob.extension.scripts.click_helper import verbosity_option
 
 logger = logging.getLogger(__name__)
 
diff --git a/bob/learn/tensorflow/script/keras.py b/bob/learn/tensorflow/script/keras.py
index 794f4d672836c5b0143e02435073ea92108127e2..ffbe8a7e401ce61175587606492f199f48563464 100644
--- a/bob/learn/tensorflow/script/keras.py
+++ b/bob/learn/tensorflow/script/keras.py
@@ -3,7 +3,9 @@
 import click
 import pkg_resources
 from click_plugins import with_plugins
+
 from bob.extension.scripts.click_helper import AliasedGroup
+
 from .utils import eager_execution_option
 
 
diff --git a/bob/learn/tensorflow/script/predict_bio.py b/bob/learn/tensorflow/script/predict_bio.py
index 31a4d05c94445031c3918536d4b5ecc7c2a04eda..260cea3857c87cbf989b02f14c9d2f7b1d62657d 100644
--- a/bob/learn/tensorflow/script/predict_bio.py
+++ b/bob/learn/tensorflow/script/predict_bio.py
@@ -4,22 +4,23 @@
 from __future__ import absolute_import
 from __future__ import division
 from __future__ import print_function
+
+import logging
 import os
 import sys
-import logging
-import click
-from bob.extension.scripts.click_helper import (
-    verbosity_option,
-    ConfigCommand,
-    ResourceOption,
-    log_parameters,
-)
 from collections import defaultdict
+
+import click
 import numpy as np
 import tensorflow as tf
-from bob.io.base import create_directories_safe
-from bob.bio.base.utils import save
+
 from bob.bio.base.tools.grid import indices
+from bob.bio.base.utils import save
+from bob.extension.scripts.click_helper import ConfigCommand
+from bob.extension.scripts.click_helper import ResourceOption
+from bob.extension.scripts.click_helper import log_parameters
+from bob.extension.scripts.click_helper import verbosity_option
+from bob.io.base import create_directories_safe
 from bob.learn.tensorflow.dataset.bio import BioGenerator
 
 try:
diff --git a/bob/learn/tensorflow/script/tf.py b/bob/learn/tensorflow/script/tf.py
index 859efe27ba390cdf4a8ebb8fe2f1ac099deddf67..56bdbfd9759dfc0ad511c8b4ba11efcce9a30d6a 100644
--- a/bob/learn/tensorflow/script/tf.py
+++ b/bob/learn/tensorflow/script/tf.py
@@ -3,7 +3,9 @@
 import click
 import pkg_resources
 from click_plugins import with_plugins
+
 from bob.extension.scripts.click_helper import AliasedGroup
+
 from .utils import eager_execution_option
 
 
diff --git a/bob/learn/tensorflow/script/train.py b/bob/learn/tensorflow/script/train.py
index 6f7a0c0d5036aca5a4835b5a98e9f6684deceda4..7d27e323b3a551830b8625fb5c6a989339dc7b5e 100644
--- a/bob/learn/tensorflow/script/train.py
+++ b/bob/learn/tensorflow/script/train.py
@@ -4,14 +4,15 @@
 from __future__ import absolute_import
 from __future__ import division
 from __future__ import print_function
+
 import logging
+
 import click
-from bob.extension.scripts.click_helper import (
-    verbosity_option,
-    ConfigCommand,
-    ResourceOption,
-    log_parameters,
-)
+
+from bob.extension.scripts.click_helper import ConfigCommand
+from bob.extension.scripts.click_helper import ResourceOption
+from bob.extension.scripts.click_helper import log_parameters
+from bob.extension.scripts.click_helper import verbosity_option
 
 logger = logging.getLogger(__name__)
 
diff --git a/bob/learn/tensorflow/script/train_and_evaluate.py b/bob/learn/tensorflow/script/train_and_evaluate.py
index 1a6cdc840ec0c33b1b33a408a16099c385a15cb0..8b1ca924158d391cc679b9a7d65b6810c52af81a 100644
--- a/bob/learn/tensorflow/script/train_and_evaluate.py
+++ b/bob/learn/tensorflow/script/train_and_evaluate.py
@@ -4,15 +4,16 @@
 from __future__ import absolute_import
 from __future__ import division
 from __future__ import print_function
-import tensorflow as tf
-from bob.learn.tensorflow.utils.hooks import EarlyStopException
+
 import logging
+
 import click
-from bob.extension.scripts.click_helper import (
-    verbosity_option,
-    ConfigCommand,
-    ResourceOption,
-)
+import tensorflow as tf
+
+from bob.extension.scripts.click_helper import ConfigCommand
+from bob.extension.scripts.click_helper import ResourceOption
+from bob.extension.scripts.click_helper import verbosity_option
+from bob.learn.tensorflow.utils.hooks import EarlyStopException
 
 logger = logging.getLogger(__name__)
 
diff --git a/bob/learn/tensorflow/script/trim.py b/bob/learn/tensorflow/script/trim.py
index 7f58ce47ab11ebac534ed294c8fb0f1058773467..17e7fce53c155c31412fdae1a534611f9b734008 100644
--- a/bob/learn/tensorflow/script/trim.py
+++ b/bob/learn/tensorflow/script/trim.py
@@ -4,12 +4,16 @@
 from __future__ import absolute_import
 from __future__ import division
 from __future__ import print_function
-import click
+
+import glob
 import logging
 import os
-import glob
+
+import click
 import tensorflow as tf
-from bob.extension.scripts.click_helper import verbosity_option, log_parameters
+
+from bob.extension.scripts.click_helper import log_parameters
+from bob.extension.scripts.click_helper import verbosity_option
 
 logger = logging.getLogger(__name__)
 
diff --git a/bob/learn/tensorflow/test/data/input_biogenerator_config.py b/bob/learn/tensorflow/test/data/input_biogenerator_config.py
index 2d03e4b19efe5ede90a5e9bffd4018f036ad3941..ba7dd1888d02282ef3101105d6e56e7d1477b2dd 100644
--- a/bob/learn/tensorflow/test/data/input_biogenerator_config.py
+++ b/bob/learn/tensorflow/test/data/input_biogenerator_config.py
@@ -1,6 +1,7 @@
+import tensorflow as tf
+
 from bob.learn.tensorflow.dataset.bio import BioGenerator
 from bob.learn.tensorflow.utils import to_channels_last
-import tensorflow as tf
 
 batch_size = 2
 epochs = 2
diff --git a/bob/learn/tensorflow/test/data/input_predict_bio_config.py b/bob/learn/tensorflow/test/data/input_predict_bio_config.py
index cf4d862ac27da74c2fb001c6d8d2ca4111022e3a..4603200d1c51578ed2bec684482aedc77098b74e 100644
--- a/bob/learn/tensorflow/test/data/input_predict_bio_config.py
+++ b/bob/learn/tensorflow/test/data/input_predict_bio_config.py
@@ -1,4 +1,5 @@
 import tensorflow as tf
+
 from bob.bio.base.test.dummy.database import database
 
 biofiles = database.all_files(["dev"])
diff --git a/bob/learn/tensorflow/test/data/input_tfrecords_config.py b/bob/learn/tensorflow/test/data/input_tfrecords_config.py
index f6df06c6c9af58d9e376c2d320724c079fe4d064..86f856c231afac34a7b6204e9cad1e985acad071 100644
--- a/bob/learn/tensorflow/test/data/input_tfrecords_config.py
+++ b/bob/learn/tensorflow/test/data/input_tfrecords_config.py
@@ -1,8 +1,7 @@
 import tensorflow as tf
-from bob.learn.tensorflow.dataset.tfrecords import (
-    shuffle_data_and_labels,
-    batch_data_and_labels,
-)
+
+from bob.learn.tensorflow.dataset.tfrecords import batch_data_and_labels
+from bob.learn.tensorflow.dataset.tfrecords import shuffle_data_and_labels
 
 tfrecord_filenames = ["%(tfrecord_filenames)s"]
 data_shape = (1, 112, 92)  # size of atnt images
diff --git a/bob/learn/tensorflow/test/data/mnist_input_fn.py b/bob/learn/tensorflow/test/data/mnist_input_fn.py
index df1d81e7ff3c8195206ddc26d9ca05d0329d6ab3..cdc3e4333085d653c98524c03e8c33f94e448e5f 100644
--- a/bob/learn/tensorflow/test/data/mnist_input_fn.py
+++ b/bob/learn/tensorflow/test/data/mnist_input_fn.py
@@ -1,6 +1,7 @@
-from bob.db.mnist import Database
 import tensorflow as tf
 
+from bob.db.mnist import Database
+
 database = Database()
 
 
diff --git a/bob/learn/tensorflow/test/test_dataset.py b/bob/learn/tensorflow/test/test_dataset.py
index 7a018c6da962179eb90cd219e64822444ed997b0..f70ee9fbfa4fcb2e82424d86d463f5f79302bfa3 100644
--- a/bob/learn/tensorflow/test/test_dataset.py
+++ b/bob/learn/tensorflow/test/test_dataset.py
@@ -2,9 +2,10 @@
 # vim: set fileencoding=utf-8 :
 # @author: Tiago de Freitas Pereira <tiago.pereira@idiap.ch>
 
-import pkg_resources
 import numpy
+import pkg_resources
 import tensorflow as tf
+
 from bob.learn.tensorflow.dataset.generator import dataset_using_generator
 
 data_shape = (250, 250, 3)
diff --git a/bob/learn/tensorflow/test/test_db_to_tfrecords.py b/bob/learn/tensorflow/test/test_db_to_tfrecords.py
index be07bde07a73b776f3bd2bff3d3fa8beb42c79cb..751856219cf9dec968416f4c95c590742c4d835b 100644
--- a/bob/learn/tensorflow/test/test_db_to_tfrecords.py
+++ b/bob/learn/tensorflow/test/test_db_to_tfrecords.py
@@ -1,16 +1,19 @@
 import os
 import shutil
-import pkg_resources
 import tempfile
-import tensorflow as tf
+
 import numpy as np
+import pkg_resources
+import tensorflow as tf
 from click.testing import CliRunner
-from bob.io.base import create_directories_safe
-from bob.learn.tensorflow.script.db_to_tfrecords import datasets_to_tfrecords
-from bob.learn.tensorflow.utils import load_mnist, create_mnist_tfrecord
-from bob.extension.scripts.click_helper import assert_click_runner_result
+
 from bob.extension.config import load
+from bob.extension.scripts.click_helper import assert_click_runner_result
+from bob.io.base import create_directories_safe
 from bob.learn.tensorflow.dataset.tfrecords import dataset_from_tfrecord
+from bob.learn.tensorflow.script.db_to_tfrecords import datasets_to_tfrecords
+from bob.learn.tensorflow.utils import create_mnist_tfrecord
+from bob.learn.tensorflow.utils import load_mnist
 
 regenerate_reference = False
 
diff --git a/bob/learn/tensorflow/test/test_loss.py b/bob/learn/tensorflow/test/test_loss.py
index cccdf600229bcac48a7526827174e465450e15c3..59303e30e9f505b8783bc839e2e26ba086b8e1f2 100644
--- a/bob/learn/tensorflow/test/test_loss.py
+++ b/bob/learn/tensorflow/test/test_loss.py
@@ -2,12 +2,13 @@
 # vim: set fileencoding=utf-8 :
 # @author: Tiago de Freitas Pereira <tiago.pereira@idiap.ch>
 
-import tensorflow as tf
 import numpy
-from bob.learn.tensorflow.loss import (
-    balanced_softmax_cross_entropy_loss_weights,
-    balanced_sigmoid_cross_entropy_loss_weights,
-)
+import tensorflow as tf
+
+from bob.learn.tensorflow.loss import \
+    balanced_sigmoid_cross_entropy_loss_weights
+from bob.learn.tensorflow.loss import \
+    balanced_softmax_cross_entropy_loss_weights
 
 
 def test_balanced_softmax_cross_entropy_loss_weights():
diff --git a/bob/learn/tensorflow/test/test_utils.py b/bob/learn/tensorflow/test/test_utils.py
index 29d9f276ae27a6aa7135487f46c562cc10cbf284..2e8a21eca9bc960cceade9a671560e07d56ba5d7 100644
--- a/bob/learn/tensorflow/test/test_utils.py
+++ b/bob/learn/tensorflow/test/test_utils.py
@@ -3,13 +3,11 @@
 # @author: Tiago de Freitas Pereira <tiago.pereira@idiap.ch>
 
 import numpy
-from bob.learn.tensorflow.utils import (
-    compute_embedding_accuracy,
-    compute_embedding_accuracy_tensors,
-)
-
 import tensorflow as tf
 
+from bob.learn.tensorflow.utils import compute_embedding_accuracy
+from bob.learn.tensorflow.utils import compute_embedding_accuracy_tensors
+
 """
 Some unit tests for the datashuffler
 """
diff --git a/bob/learn/tensorflow/utils/__init__.py b/bob/learn/tensorflow/utils/__init__.py
index da50ee84cecd2e28286a475e86130c5083fb45c5..ebfdb2b1296b54a05d35d826d98f0d14aae606ad 100644
--- a/bob/learn/tensorflow/utils/__init__.py
+++ b/bob/learn/tensorflow/utils/__init__.py
@@ -1,9 +1,9 @@
-from .util import *
-from .singleton import Singleton
-from .session import Session
 from .eval import *
-from .keras import *
-from .train import *
 from .graph import *
+from .keras import *
 from .math import *
 from .reproducible import *
+from .session import Session
+from .singleton import Singleton
+from .train import *
+from .util import *
diff --git a/bob/learn/tensorflow/utils/eval.py b/bob/learn/tensorflow/utils/eval.py
index 3efa80a1ee05446ed669680b374ce07e1232fe50..d647b0a7ad880ed5e665bfe87da85ee2463aa063 100644
--- a/bob/learn/tensorflow/utils/eval.py
+++ b/bob/learn/tensorflow/utils/eval.py
@@ -1,6 +1,7 @@
 from __future__ import absolute_import
 from __future__ import division
 from __future__ import print_function
+
 import tensorflow as tf
 
 
diff --git a/bob/learn/tensorflow/utils/keras.py b/bob/learn/tensorflow/utils/keras.py
index e5e1a8f49b3c896a051f56d986adbe89c7f2c30a..3a278fd6ded75ed8a7a05a5c47f98c594744ca69 100644
--- a/bob/learn/tensorflow/utils/keras.py
+++ b/bob/learn/tensorflow/utils/keras.py
@@ -1,7 +1,8 @@
-import tensorflow.keras.backend as K
-import tensorflow as tf
 import logging
 
+import tensorflow as tf
+import tensorflow.keras.backend as K
+
 logger = logging.getLogger(__name__)
 
 
diff --git a/bob/learn/tensorflow/utils/reproducible.py b/bob/learn/tensorflow/utils/reproducible.py
index f1a2b499ce5f12a7c21aa7b28d82df7e5cf898ff..bcb988a4486ef8fe5df99e95e0022ba99ded306b 100644
--- a/bob/learn/tensorflow/utils/reproducible.py
+++ b/bob/learn/tensorflow/utils/reproducible.py
@@ -2,6 +2,7 @@
 """
 import os
 import random as rn
+
 import numpy as np
 import tensorflow as tf
 from tensorflow.core.protobuf import rewriter_config_pb2
diff --git a/bob/learn/tensorflow/utils/sequences.py b/bob/learn/tensorflow/utils/sequences.py
index 99cdf5aa47982570d0862a08743e8998970ab0e6..77abe1828175311d49c5a0887169f22c6fb0de0d 100644
--- a/bob/learn/tensorflow/utils/sequences.py
+++ b/bob/learn/tensorflow/utils/sequences.py
@@ -1,10 +1,12 @@
 from __future__ import division
+
 import numpy
 from keras.utils import Sequence
 
-# documentation imports
-from bob.dap.base.database import PadDatabase, PadFile
 from bob.bio.base.preprocessor import Preprocessor
+# documentation imports
+from bob.dap.base.database import PadDatabase
+from bob.dap.base.database import PadFile
 
 
 class PadSequence(Sequence):
diff --git a/bob/learn/tensorflow/utils/session.py b/bob/learn/tensorflow/utils/session.py
index 34022df16d0f2f834c0fd268d58eb255bba94a71..9b72a6ad1ae17a08f709e110854470efdea578d0 100644
--- a/bob/learn/tensorflow/utils/session.py
+++ b/bob/learn/tensorflow/utils/session.py
@@ -4,9 +4,10 @@
 # @date: Wed 11 May 2016 09:39:36 CEST
 
 import tensorflow as tf
-from .singleton import Singleton
 from tensorflow.python import debug as tf_debug
 
+from .singleton import Singleton
+
 
 @Singleton
 class Session(object):
diff --git a/bob/learn/tensorflow/utils/util.py b/bob/learn/tensorflow/utils/util.py
index a7cd02d39cfd87adc1625d418e8488072e56660a..1338f1fd6f658daccdf5f9284d784ece288e96e6 100644
--- a/bob/learn/tensorflow/utils/util.py
+++ b/bob/learn/tensorflow/utils/util.py
@@ -3,12 +3,13 @@
 # @author: Tiago de Freitas Pereira <tiago.pereira@idiap.ch>
 # @date: Wed 11 May 2016 09:39:36 CEST
 
+import inspect
+import logging
+
 import numpy
 import tensorflow as tf
 from tensorflow.python.client import device_lib
 from tensorflow.python.framework import function
-import inspect
-import logging
 
 logger = logging.getLogger(__name__)
 
@@ -123,9 +124,10 @@ def create_mnist_tfrecord(tfrecords_filename, data, labels, n_samples=6000):
 def compute_eer(
     data_train, labels_train, data_validation, labels_validation, n_classes
 ):
-    import bob.measure
     from scipy.spatial.distance import cosine
 
+    import bob.measure
+
     # Creating client models
     models = []
     for i in range(n_classes):
@@ -190,6 +192,7 @@ def compute_accuracy(
 def debug_embbeding(image, architecture, embbeding_dim=2, feature_layer="fc3"):
     """"""
     import tensorflow as tf
+
     from bob.learn.tensorflow.utils.session import Session
 
     session = Session.instance(new=False).session
@@ -287,7 +290,8 @@ def compute_embedding_accuracy(embedding, labels):
       Correspondent labels
     """
 
-    from scipy.spatial.distance import pdist, squareform
+    from scipy.spatial.distance import pdist
+    from scipy.spatial.distance import squareform
 
     distances = squareform(pdist(embedding))
 
diff --git a/doc/conf.py b/doc/conf.py
index 7959b3ebb4d3be85efe68a80b767051c67e89d89..b0729503c2c01cb30effbd4ae9f31f424bb11c11 100644
--- a/doc/conf.py
+++ b/doc/conf.py
@@ -1,11 +1,11 @@
 #!/usr/bin/env python
 # vim: set fileencoding=utf-8 :
 
+import glob
 import os
 import sys
-import glob
-import pkg_resources
 
+import pkg_resources
 
 # -- General configuration -----------------------------------------------------
 
@@ -235,7 +235,8 @@ autodoc_default_flags = [
 ]
 
 # For inter-documentation mapping:
-from bob.extension.utils import link_documentation, load_requirements
+from bob.extension.utils import link_documentation
+from bob.extension.utils import load_requirements
 
 sphinx_requirements = "extra-intersphinx.txt"
 if os.path.exists(sphinx_requirements):
diff --git a/setup.py b/setup.py
index c53aa82aa7f5f9cfe2aaacb565bedbceb0384597..8ae309095576402c9d1ae2db2196b0a8b0cf2397 100644
--- a/setup.py
+++ b/setup.py
@@ -3,13 +3,13 @@
 # Andre Anjos <andre.anjos@idiap.ch>
 # Mon 16 Apr 08:18:08 2012 CEST
 
+from setuptools import dist
 from setuptools import setup
 
-from setuptools import setup, dist
-
 dist.Distribution(dict(setup_requires=["bob.extension"]))
 
-from bob.extension.utils import load_requirements, find_packages
+from bob.extension.utils import find_packages
+from bob.extension.utils import load_requirements
 
 install_requires = load_requirements()