View source on GitHub
|
CutMix data augmentation technique.
Inherits From: Layer, Operation
tf.keras.layers.CutMix(
factor=1.0, seed=None, data_format=None, **kwargs
)
CutMix is a data augmentation method where patches are cut and pasted
between two images in the dataset, while the labels are also mixed
proportionally to the area of the patches.
Note: This layer is safe to use inside a <a href="../../../tf/data"><code>tf.data</code></a> or `grain` pipeline
(independently of which backend you're using).
References:
- [CutMix paper]( https://arxiv.org/abs/1905.04899).
Args:
factor: A single float or a tuple of two floats between 0 and 1.
If a tuple of numbers is passed, a `factor` is sampled
between the two values.
If a single float is passed, a value between 0 and the passed
float is sampled. These values define the range from which the
mixing weight is sampled. A higher factor increases the variability
in patch sizes, leading to more diverse and larger mixed patches.
Defaults to 1.
seed: Integer. Used to create a random seed.
Example:
layer = keras.layers.CutMix(value_range=(0, 255))
images = np.random.randint(0, 255, (8, 224, 224, 3), dtype="uint8")
labels = keras.ops.one_hot(
np.array([0, 1, 2, 0, 1, 2, 0, 1]),
num_classes=3
)
segmentation_masks = np.random.randint(0, 3, (8, 224, 224, 1), dtype="uint8")
output = layer(
{
"images": images,
"labels": labels,
"segmentation_masks": segmentation_masks
},
training=True
)
Methods
convert_weight
convert_weight(
weight
)
Convert the weight if it is from the a different backend.
from_config
@classmethodfrom_config( config )
Creates an operation from its config.
This method is the reverse of get_config, capable of instantiating the
same operation from the config dictionary.
if "dtype" in config and isinstance(config["dtype"], dict):
policy = dtype_policies.deserialize(config["dtype"])
| Args | |
|---|---|
config
|
A Python dictionary, typically the output of get_config.
|
| Returns | |
|---|---|
| An operation instance. |
get_random_transformation
get_random_transformation(
data, training=True, seed=None
)
transform_bounding_boxes
transform_bounding_boxes(
bounding_boxes, transformation, training=True
)
transform_images
transform_images(
images, transformation=None, training=True
)
transform_labels
transform_labels(
labels, transformation, training=True
)
transform_segmentation_masks
transform_segmentation_masks(
segmentation_masks, transformation, training=True
)
transform_single_bounding_box
transform_single_bounding_box(
bounding_box, transformation, training=True
)
transform_single_image
transform_single_image(
image, transformation, training=True
)
transform_single_label
transform_single_label(
label, transformation, training=True
)
transform_single_segmentation_mask
transform_single_segmentation_mask(
segmentation_mask, transformation, training=True
)
View source on GitHub