ยป
Keras API reference /
Layers API /
Preprocessing layers /
Image preprocessing & augmentation layers /
RandomZoom layer

`RandomZoom`

class```
tf.keras.layers.experimental.preprocessing.RandomZoom(
height_factor,
width_factor=None,
fill_mode="reflect",
interpolation="bilinear",
seed=None,
fill_value=0.0,
**kwargs
)
```

Randomly zoom each image during training.

**Arguments**

**height_factor**: a float represented as fraction of value, or a tuple of size 2 representing lower and upper bound for zooming vertically. When represented as a single float, this value is used for both the upper and lower bound. A positive value means zooming out, while a negative value means zooming in. For instance,`height_factor=(0.2, 0.3)`

result in an output zoomed out by a random amount in the range [+20%, +30%].`height_factor=(-0.3, -0.2)`

result in an output zoomed in by a random amount in the range [+20%, +30%].**width_factor**: a float represented as fraction of value, or a tuple of size 2 representing lower and upper bound for zooming horizontally. When represented as a single float, this value is used for both the upper and lower bound. For instance,`width_factor=(0.2, 0.3)`

result in an output zooming out between 20% to 30%.`width_factor=(-0.3, -0.2)`

result in an output zooming in between 20% to 30%. Defaults to`None`

, i.e., zooming vertical and horizontal directions by preserving the aspect ratio.**fill_mode**: Points outside the boundaries of the input are filled according to the given mode (one of`{'constant', 'reflect', 'wrap', 'nearest'}`

).*reflect*:`(d c b a | a b c d | d c b a)`

The input is extended by reflecting about the edge of the last pixel.*constant*:`(k k k k | a b c d | k k k k)`

The input is extended by filling all values beyond the edge with the same constant value k = 0.*wrap*:`(a b c d | a b c d | a b c d)`

The input is extended by wrapping around to the opposite edge.*nearest*:`(a a a a | a b c d | d d d d)`

The input is extended by the nearest pixel.

**interpolation**: Interpolation mode. Supported values: "nearest", "bilinear".**seed**: Integer. Used to create a random seed.**fill_value**: a float represents the value to be filled outside the boundaries when`fill_mode`

is "constant".

**Example**

input_img = np.random.random((32, 224, 224, 3)) >>> layer = tf.keras.layers.experimental.preprocessing.RandomZoom(.5, .2) >>> out_img = layer(input_img) >>> out_img.shape TensorShape([32, 224, 224, 3])

**Input shape**

4D tensor with shape: `(samples, height, width, channels)`

,
data_format='channels_last'.

**Output shape**

4D tensor with shape: `(samples, height, width, channels)`

,
data_format='channels_last'.

Raise: ValueError: if lower bound is not between [0, 1], or upper bound is negative.