def forward(self, inputs): # shape notation # i_s: input_size # s: size # u: units # b_s: batch_size # inputs shape [b_s, i_s] hidden = self.fc_layer(inputs) # [b_s, u] hidden = self.batch_norm(hidden) # [b_s, u] if self.apply_glu: hidden = glu(hidden) # [bs, s] return hidden # [b_s, 2*s] if apply_glu else [b_s, s]
def call(self, inputs, training: bool = None, **kwargs): hidden = self.fc_layer(inputs) hidden = self.batch_norm(hidden, training=training) if self.apply_glu: hidden = glu(hidden, self.size) return hidden
def call(self, inputs, training: bool = None, alpha: float = 0.0): hidden = self.fc_layer(inputs) hidden = self.batch_norm(hidden, training=training, alpha=alpha) if self.apply_glu: hidden = glu(hidden, self.size) return hidden