| 93 | |
| 94 | class DecoderModel(nn.Module, Seq2SeqAttrs): |
| 95 | def __init__(self, **model_kwargs): |
| 96 | # super().__init__(is_training, adj_mx, **model_kwargs) |
| 97 | nn.Module.__init__(self) |
| 98 | Seq2SeqAttrs.__init__(self, **model_kwargs) |
| 99 | self.output_dim = int(model_kwargs.get('output_dim', 1)) |
| 100 | self.horizon = int(model_kwargs.get('horizon', 1)) # for the decoder |
| 101 | self.projection_layer = nn.Linear(self.rnn_units, self.output_dim) |
| 102 | self.dcgru_layers = nn.ModuleList( |
| 103 | [DCGRUCell(self.rnn_units, self.max_diffusion_step, self.num_nodes, |
| 104 | filter_type=self.filter_type) for _ in range(self.num_rnn_layers)]) |
| 105 | |
| 106 | def forward(self, inputs, adj, hidden_state=None): |
| 107 | """ |