50e106b56c
* add base merge layer * format docstrings * add layer * add test cases for layer * Add import for layer * fix build function * add dynamic and static tests * fix pytest import * fix pytest decorator * remove batch size from dynamic shape test * fix keras reference * refactor test class * fix tf tests, and linting issues * add subtract layer * add tests for subtract layer * fix linting issues * add average layer * add maximum layer * dd minimum layer * add multiply layer * add tests for average, minimum, maximum, and multiply layers
71 lines
2.3 KiB
Python
71 lines
2.3 KiB
Python
from keras_core import operations as ops
|
|
from keras_core.api_export import keras_core_export
|
|
from keras_core.layers.merging.base_merge import Merge
|
|
|
|
|
|
@keras_core_export("keras_core.layers.Minimum")
|
|
class Minimum(Merge):
|
|
"""Computes elementwise minimum on a list of inputs.
|
|
|
|
It takes as input a list of tensors, all of the same shape,
|
|
and returns a single tensor (also of the same shape).
|
|
|
|
Examples:
|
|
|
|
>>> input_shape = (2, 3, 4)
|
|
>>> x1 = np.random.rand(*input_shape)
|
|
>>> x2 = np.random.rand(*input_shape)
|
|
>>> y = keras_core.layers.Minimum()([x1, x2])
|
|
|
|
Usage in a Keras model:
|
|
|
|
>>> input1 = keras_core.layers.Input(shape=(16,))
|
|
>>> x1 = keras_core.layers.Dense(8, activation='relu')(input1)
|
|
>>> input2 = keras_core.layers.Input(shape=(32,))
|
|
>>> x2 = keras_core.layers.Dense(8, activation='relu')(input2)
|
|
>>> # equivalent to `y = keras_core.layers.minimum([x1, x2])`
|
|
>>> y = keras_core.layers.Minimum()([x1, x2])
|
|
>>> out = keras_core.layers.Dense(4)(y)
|
|
>>> model = keras_core.models.Model(inputs=[input1, input2], outputs=out)
|
|
|
|
"""
|
|
|
|
def _merge_function(self, inputs):
|
|
output = inputs[0]
|
|
for i in range(1, len(inputs)):
|
|
output = ops.minimum(output, inputs[i])
|
|
return output
|
|
|
|
|
|
@keras_core_export("keras_core.layers.minimum")
|
|
def minimum(inputs, **kwargs):
|
|
"""Functional interface to the `keras_core.layers.Minimum` layer.
|
|
|
|
Args:
|
|
inputs: A list of input tensors , all of the same shape.
|
|
**kwargs: Standard layer keyword arguments.
|
|
|
|
Returns:
|
|
A tensor as the elementwise product of the inputs with the same
|
|
shape as the inputs.
|
|
|
|
Examples:
|
|
|
|
>>> input_shape = (2, 3, 4)
|
|
>>> x1 = np.random.rand(*input_shape)
|
|
>>> x2 = np.random.rand(*input_shape)
|
|
>>> y = keras_core.layers.minimum([x1, x2])
|
|
|
|
Usage in a Keras model:
|
|
|
|
>>> input1 = keras_core.layers.Input(shape=(16,))
|
|
>>> x1 = keras_core.layers.Dense(8, activation='relu')(input1)
|
|
>>> input2 = keras_core.layers.Input(shape=(32,))
|
|
>>> x2 = keras_core.layers.Dense(8, activation='relu')(input2)
|
|
>>> y = keras_core.layers.minimum([x1, x2])
|
|
>>> out = keras_core.layers.Dense(4)(y)
|
|
>>> model = keras_core.models.Model(inputs=[input1, input2], outputs=out)
|
|
|
|
"""
|
|
return Minimum(**kwargs)(inputs)
|