tf.keras.layers.RandomZoom
Stay organized with collections
Save and categorize content based on your preferences.
A preprocessing layer which randomly zooms images during training.
Inherits From: Layer
, Module
tf.keras.layers.RandomZoom(
height_factor,
width_factor=None,
fill_mode='reflect',
interpolation='bilinear',
seed=None,
fill_value=0.0,
**kwargs
)
This layer will randomly zoom in or out on each axis of an image
independently, filling empty space according to fill_mode
.
Input pixel values can be of any range (e.g. [0., 1.)
or [0, 255]
) and
of interger or floating point dtype. By default, the layer will output
floats.
For an overview and full list of preprocessing layers, see the preprocessing
guide.
Args |
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="constant" .
|
Example:
input_img = np.random.random((32, 224, 224, 3))
layer = tf.keras.layers.RandomZoom(.5, .2)
out_img = layer(input_img)
out_img.shape
TensorShape([32, 224, 224, 3])
|
3D
|
unbatched) or 4D (batched) tensor with shape
(..., height, width, channels) , in "channels_last" format.
|
Output shape |
3D
|
unbatched) or 4D (batched) tensor with shape
(..., height, width, channels) , in "channels_last" format.
|
Attributes |
auto_vectorize
|
Control whether automatic vectorization occurs.
By default the call() method leverages the tf.vectorized_map()
function. Auto-vectorization can be disabled by setting
self.auto_vectorize = False in your __init__() method. When
disabled, call() instead relies on tf.map_fn() . For example:
class SubclassLayer(BaseImageAugmentationLayer):
def __init__(self):
super().__init__()
self.auto_vectorize = False
|
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates. Some content is licensed under the numpy license.
Last updated 2023-10-06 UTC.
[null,null,["Last updated 2023-10-06 UTC."],[],[],null,["# tf.keras.layers.RandomZoom\n\n\u003cbr /\u003e\n\n|-----------------------------------------------------------------------------------------------------------------------------------------|\n| [View source on GitHub](https://github.com/keras-team/keras/tree/v2.11.0/keras/layers/preprocessing/image_preprocessing.py#L1299-L1474) |\n\nA preprocessing layer which randomly zooms images during training.\n\nInherits From: [`Layer`](../../../tf/keras/layers/Layer), [`Module`](../../../tf/Module)\n\n#### View aliases\n\n\n**Main aliases**\n\n[`tf.keras.layers.experimental.preprocessing.RandomZoom`](https://www.tensorflow.org/api_docs/python/tf/keras/layers/RandomZoom)\n\n\u003cbr /\u003e\n\n tf.keras.layers.RandomZoom(\n height_factor,\n width_factor=None,\n fill_mode='reflect',\n interpolation='bilinear',\n seed=None,\n fill_value=0.0,\n **kwargs\n )\n\nThis layer will randomly zoom in or out on each axis of an image\nindependently, filling empty space according to `fill_mode`.\n\nInput pixel values can be of any range (e.g. `[0., 1.)` or `[0, 255]`) and\nof interger or floating point dtype. By default, the layer will output\nfloats.\n\nFor an overview and full list of preprocessing layers, see the preprocessing\n[guide](https://www.tensorflow.org/guide/keras/preprocessing_layers).\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n| Args ---- ||\n|-----------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| `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%]`. |\n| `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. |\n| `fill_mode` | Points outside the boundaries of the input are filled according to the given mode (one of `{\"constant\", \"reflect\", \"wrap\", \"nearest\"}`). \u003cbr /\u003e - *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. |\n| `interpolation` | Interpolation mode. Supported values: `\"nearest\"`, `\"bilinear\"`. |\n| `seed` | Integer. Used to create a random seed. |\n| `fill_value` | a float represents the value to be filled outside the boundaries when `fill_mode=\"constant\"`. |\n\n#### Example:\n\n input_img = np.random.random((32, 224, 224, 3))\n layer = tf.keras.layers.RandomZoom(.5, .2)\n out_img = layer(input_img)\n out_img.shape\n TensorShape([32, 224, 224, 3])\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n| Input shape ----------- ||\n|------|----------------------------------------------------------------------------------------------------------------------|\n| `3D` | `unbatched) or 4D (batched) tensor with shape` \u003cbr /\u003e `(..., height, width, channels)`, in `\"channels_last\"` format. |\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n| Output shape ------------ ||\n|------|----------------------------------------------------------------------------------------------------------------------|\n| `3D` | `unbatched) or 4D (batched) tensor with shape` \u003cbr /\u003e `(..., height, width, channels)`, in `\"channels_last\"` format. |\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n| Attributes ---------- ||\n|------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| `auto_vectorize` | Control whether automatic vectorization occurs. \u003cbr /\u003e By default the `call()` method leverages the [`tf.vectorized_map()`](../../../tf/vectorized_map) function. Auto-vectorization can be disabled by setting `self.auto_vectorize = False` in your `__init__()` method. When disabled, `call()` instead relies on [`tf.map_fn()`](../../../tf/map_fn). For example: class SubclassLayer(BaseImageAugmentationLayer): def __init__(self): super().__init__() self.auto_vectorize = False \u003cbr /\u003e |\n\n\u003cbr /\u003e"]]