in summarize_from_feedback/models/transformer.py [0:0]
def forward(self, x, hidden_states=None):
"""
x: input tensor
hidden_state: list of hidden_states, one for each resblock
if None, then becomes [None] * n_layer
returns
x: The output of the layers
output_hidden_states: A list of size self.resblocks with each hidden_state
"""
if hidden_states is None:
hidden_states = [None] * len(self.resblocks)
else:
hidden_states = hidden_states
assert len(hidden_states) == len(
self.resblocks
), f"number of hidden states should match number of resblocks: {len(hidden_states)} != {len(self.resblocks)}"
output_hidden_states = []
# Blocks
for l, hidden_state in zip(self.resblocks, hidden_states):
x, output_hidden_state = l(x, hidden_state=hidden_state)
output_hidden_states.append(output_hidden_state)
return x, output_hidden_states