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
@classmethod
with_name_scope( method )
Decorator to automatically enter the module name scope.
class MyModule(tf.Module):
@tf.Module.with_name_scope
def __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.Variable
s and tf.Tensor
s 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
.