in realbook/layers/math.py [0:0]
def call(self, inputs: tf.Tensor) -> tf.Tensor:
inputs = self.squeeze_batch(inputs) # type: ignore
# convert magnitude to power
power = tf.math.square(inputs)
log_power = 10 * log_base_b(power + 1e-10, 10)
log_power_min = tf.reshape(tf.math.reduce_min(log_power, axis=[1, 2]), [tf.shape(inputs)[0], 1, 1])
log_power_offset = log_power - log_power_min
log_power_offset_max = tf.reshape(
tf.math.reduce_max(log_power_offset, axis=[1, 2]),
[tf.shape(inputs)[0], 1, 1],
)
log_power_normalized = tf.math.divide_no_nan(log_power_offset, log_power_offset_max)
return tf.reshape(log_power_normalized, tf.shape(inputs))