pyFDN.Trainable#

class pyFDN.Trainable(feedback=True, input_gain=True, output_gain=True, direct=False)[source]#

Which of the FDN’s gain groups are trained. Delays are always fixed.

These four are plain arrays: they have no module of their own to carry the flag, so it is named here. The three filter hooks are not in this class, because a filter is a module and a module carries its own requires_grad – a AttenuationFilter or OutputEQ is trained unless it was built with requires_grad=False.

A baked SOS bank taken from an FDNBuild is always frozen. Raw biquad coefficients have nothing keeping them inside the unit circle, so a fit that wants more energy raises the loop gain past 1 and the network diverges; training one is therefore a module you build on purpose (pyFDN.sos_filter_module()), not a flag.

__init__(feedback=True, input_gain=True, output_gain=True, direct=False)#

Methods

__init__([feedback, input_gain, ...])

Attributes

direct: bool = False#
feedback: bool = True#
input_gain: bool = True#
output_gain: bool = True#