# Scaling

The Scaling block represents a simple multiplication of each input by the same user-defined scalar value. You can also add an offset.

$output = input * scale + offset$

## Usage

Use, e.g., when scaling the residual branch of residual connections as in the network ResNet.

If your model includes a Scaling block and you want to download an .h5-model, you can use the additional code below. You need to do this since the .h5-format comes from Keras, and Keras doesn’t support the Scaling block, so some extra code is needed.

import tensorflow as tf

class Scaling(tf.keras.layers.Layer):

def __init__(self, scale: float, offset: float, **kwargs):
super().__init__(**kwargs)
self._scale = scale
self._offset = offset

def call(self, inputs):
return inputs * self._scale + self._offset

def get_config(self):
config = super().get_config()
config['scale'] = self._scale
config['offset'] = self._offset
return config

model = tf.keras.models.load_model('my_model.h5', custom_objects={'Scaling': Scaling})

## Parameters

Scale: The real number used to multiply each input.
Default: 0.5.

Offset: The offset value is added to each input.
Default: 0.