Creates a Reversible ResNet (RevNet) family model.
tfm.vision.backbones.RevNet(
model_id: int,
input_specs: tf.keras.layers.InputSpec = tf.keras.layers.InputSpec(shape=[None, None, None, 3]),
activation: str = 'relu',
use_sync_bn: bool = False,
norm_momentum: float = 0.99,
norm_epsilon: float = 0.001,
kernel_initializer: str = 'VarianceScaling',
kernel_regularizer: Optional[tf.keras.regularizers.Regularizer] = None,
**kwargs
)
This implements
Aidan N. Gomez, Mengye Ren, Raquel Urtasun, Roger B. Grosse.
The Reversible Residual Network: Backpropagation Without Storing
Activations.
(https://arxiv.org/pdf/1707.04585.pdf )
Args
model_id
An int
of depth/id of ResNet backbone model.
input_specs
A tf.keras.layers.InputSpec
of the input tensor.
activation
A str
name of the activation function.
use_sync_bn
If True, use synchronized batch normalization.
norm_momentum
A float
of normalization momentum for the moving average.
norm_epsilon
A float
added to variance to avoid dividing by zero.
kernel_initializer
A str for kernel initializer of convolutional layers.
kernel_regularizer
A tf.keras.regularizers.Regularizer
object for
Conv2D. Default to None.
**kwargs
Additional keyword arguments to be passed.
Attributes
output_specs
A dict of {level: TensorShape} pairs for the model output.
Methods
call
call(
inputs, training=None, mask=None
)
Calls the model on new inputs and returns the outputs as tensors.
In this case call()
just reapplies
all ops in the graph to the new inputs
(e.g. build a new computational graph from the provided inputs).
Note: This method should not be called directly. It is only meant to be
overridden when subclassing tf.keras.Model
.
To call a model on an input, always use the __call__()
method,
i.e. model(inputs)
, which relies on the underlying call()
method.
Args
inputs
Input tensor, or dict/list/tuple of input tensors.
training
Boolean or boolean scalar tensor, indicating whether to
run the Network
in training mode or inference mode.
mask
A mask or list of masks. A mask can be either a boolean tensor
or None (no mask). For more details, check the guide
here .
Returns
A tensor if there is a single output, or
a list of tensors if there are more than one outputs.