def call(self, input_tensor, training, dropout=0.0):
    'Defines a single encoding layer.'
    x = input_tensor
    skip = x
    x = self._conv_layer_1(x)
    x = self._batch_norm_layer_1(x, training=training)
    x = tf.nn.relu(x)
    if training:
        x = tf.nn.dropout(x, rate=dropout)
    x = self._conv_layer_2(x)
    x = self._batch_norm_layer_2(x, training=training)
    x += skip
    x = tf.nn.relu(x)
    if training:
        x = tf.nn.dropout(x, rate=dropout)
    x = self._conv_layer_3(x)
    x = self._batch_norm_layer_3(x, training=training)
    x = tf.nn.relu(x)
    if training:
        x = tf.nn.dropout(x, rate=dropout)
    return x
Defines a single encoding layer.
def call(self, input_tensor, training, dropout=0.0):
    
    x = input_tensor
    skip = x
    x = self._conv_layer_1(x)
    x = self._batch_norm_layer_1(x, training=training)
    x = tf.nn.relu(x)
    if training:
        x = tf.nn.dropout(x, rate=dropout)
    x = self._conv_layer_2(x)
    x = self._batch_norm_layer_2(x, training=training)
    x += skip
    x = tf.nn.relu(x)
    if training:
        x = tf.nn.dropout(x, rate=dropout)
    x = self._conv_layer_3(x)
    x = self._batch_norm_layer_3(x, training=training)
    x = tf.nn.relu(x)
    if training:
        x = tf.nn.dropout(x, rate=dropout)
    return x