in opacus/layers/dp_rnn.py [0:0]
def initialize_cells(self):
cells = []
rename_map = {}
for layer, directions in self.iterate_layers():
for direction, _ in directions:
layer_input_size = (
self.input_size
if layer == 0
else self.hidden_size * self.num_directions
)
cell = self.cell_type(
layer_input_size,
self.hidden_size,
bias=self.bias,
**self.cell_params,
)
cells.append(cell)
suffix = "_reverse" if direction == 1 else ""
cell_name = f"l{layer}{suffix}"
setattr(self, cell_name, cell)
components = ["weight"] + ["bias" if self.bias else []]
matrices = ["ih", "hh"]
for c in components:
for m in matrices:
rename_map[f"{cell_name}.{m}.{c}"] = f"{c}_{m}_{cell_name}"
self.set_rename_map(rename_map)
return cells