BranchAndMultiplyTogether#
- class penzai.nn.combinators.BranchAndMultiplyTogether[source]#
Bases:
Layer
A data-flow branch with multiplicative interactions between branches.
BranchAndMultiplyTogether
can be used to compose multiple operations that all produce values of the same shape (or broadcast-compatible shapes). Each branch receives the same input, and the outputs of all branches are multiplied together.This is a common pattern in “gated” neural networks, where one branch computes a gate using a nonlinear activation function, and the other branch computes a value that is multiplied by the gate.
- Variables:
branches (list[layer_base.Layer]) – A list of layers that will be run on the same input, and have their outputs multiplied together.
Methods
__init__
(branches)__call__
(arg, **side_inputs)Attributes
branches
Inherited Methods
(expand to view inherited methods)
attributes_dict
()Constructs a dictionary with all of the fields in the class.
bind_variables
(variables[, allow_unused])Convenience function to bind variables to a layer.
from_attributes
(**field_values)Directly instantiates a struct given all of its fields.
key_for_field
(field_name)Generates a JAX PyTree key for a given field name.
select
()Wraps this struct in a selection, enabling functional-style mutations.
stateless_call
(variable_values, argument, /, ...)Calls a layer with temporary variables, without modifying its state.
tree_flatten
()Flattens this tree node.
tree_flatten_with_keys
()Flattens this tree node with keys.
tree_unflatten
(aux_data, children)Unflattens this tree node.
treescope_color
()Computes a CSS color to display for this object in treescope.