(self, message, trigger)
Synthetic forward pass, no backward pass.

        Convenience method combining `send` and `receive`. Updates the
        `message` estimate based on `trigger` and returns a synthetic
        `message`.

        Works only in `training` mode, otherwise just returns the input
        `message`.

        Args:
            message: Ground truth `message` that should be synthesized based on
                `trigger`.
            trigger: `trigger` that the `message` should be synthesized based
                on.

        Returns:
            The synthesized `message`.
Synthetic forward pass, no backward pass.
Synthetic forward pass no backward pass .
def forward(self, message, trigger):
        """Synthetic forward pass, no backward pass.

        Convenience method combining `send` and `receive`. Updates the
        `message` estimate based on `trigger` and returns a synthetic
        `message`.

        Works only in `training` mode, otherwise just returns the input
        `message`.

        Args:
            message: Ground truth `message` that should be synthesized based on
                `trigger`.
            trigger: `trigger` that the `message` should be synthesized based
                on.

        Returns:
            The synthesized `message`.
        """
        if self.training:
            self.send(message, trigger)
            return self.receive(trigger)
        else:
            return message
def forward ( self , message , trigger ) : if self . training : self . send ( message , trigger ) return self . receive ( trigger ) else : return message