View source on GitHub |
RDFT reparameterization of a convolution kernel.
Inherits From: Parameter
tfc.layers.RDFTParameter( initial_value, name=None, shape=None, dtype=None ) This uses the real-input discrete Fourier transform (RDFT) of a kernel as its parameterization. The inverse RDFT is applied to the variable to produce the kernel.
(see https://en.wikipedia.org/wiki/Discrete_Fourier_transform)
Args | |
|---|---|
initial_value | tf.Tensor or None. The initial value of the kernel. If not provided, its shape must be given, and the initial value of the parameter will be undefined. |
name | String. The name of the kernel. |
shape | tf.TensorShape or compatible. Ignored unless initial_value is None. |
dtype | tf.dtypes.DType or compatible. DType of this parameter. If not given, inferred from initial_value. |
Attributes | |
|---|---|
shape | tf.TensorShape. The shape of the convolution kernel. |
real | tf.Variable. The real part of the RDFT of the kernel. |
imag | tf.Variable. The imaginary part of the RDFT of the kernel. |
dtype | |
name | Returns the name of this module as passed or determined in the ctor. |
name_scope | Returns a tf.name_scope instance for this class. |
non_trainable_variables | Sequence of non-trainable variables owned by this module and its submodules. |
submodules | Sequence of all sub-modules. Submodules are modules which are properties of this module, or found as properties of modules which are properties of this module (and so on).
|
trainable_variables | Sequence of trainable variables owned by this module and its submodules. |
variables | Sequence of variables owned by this module and its submodules. |
Methods
get_config
get_config() -> Dict[str, Any] Returns the configuration of the Parameter.
get_weights
get_weights() set_weights
set_weights( weights ) with_name_scope
@classmethodwith_name_scope( method )
Decorator to automatically enter the module name scope.
class MyModule(tf.Module):@tf.Module.with_name_scopedef __call__(self, x):if not hasattr(self, 'w'):self.w = tf.Variable(tf.random.normal([x.shape[1], 3]))return tf.matmul(x, self.w)
Using the above module would produce tf.Variables and tf.Tensors whose names included the module name:
mod = MyModule()mod(tf.ones([1, 2]))<tf.Tensor: shape=(1, 3), dtype=float32, numpy=..., dtype=float32)>mod.w<tf.Variable 'my_module/Variable:0' shape=(2, 3) dtype=float32,numpy=..., dtype=float32)>
| Args | |
|---|---|
method | The method to wrap. |
| Returns | |
|---|---|
| The original method wrapped such that it enters the module's name scope. |
__call__
__call__( compute_dtype=None ) -> tf.Tensor Computes and returns the convolution kernel as a tf.Tensor.
View source on GitHub