libcity.model.traffic_speed_prediction.TGCN

class libcity.model.traffic_speed_prediction.TGCN.TGCN(config, data_feature)[源代码]

基类:libcity.model.abstract_traffic_state_model.AbstractTrafficStateModel

calculate_loss(batch)[源代码]

输入一个batch的数据,返回训练过程的loss,也就是需要定义一个loss函数

参数

batch (Batch) – a batch of input

返回

return training loss

返回类型

torch.tensor

forward(batch)[源代码]
参数

batch

a batch of input, batch[‘X’]: shape (batch_size, input_window, num_nodes, input_dim)

batch[‘y’]: shape (batch_size, output_window, num_nodes, output_dim)

返回

(batch_size, self.output_window, self.num_nodes, self.output_dim)

返回类型

torch.tensor

predict(batch)[源代码]

输入一个batch的数据,返回对应的预测值,一般应该是**多步预测**的结果,一般会调用nn.Moudle的forward()方法

参数

batch (Batch) – a batch of input

返回

predict result of this batch

返回类型

torch.tensor

training: bool
class libcity.model.traffic_speed_prediction.TGCN.TGCNCell(num_units, adj_mx, num_nodes, device, input_dim=1)[源代码]

基类:torch.nn.modules.module.Module

_gc(inputs, state, output_size, bias_start=0.0)[源代码]

GCN

参数
  • inputs – (batch, self.num_nodes * self.dim)

  • state – (batch, self.num_nodes * self.gru_units)

  • output_size

  • bias_start

返回

(B, num_nodes , output_size)

返回类型

torch.tensor

forward(inputs, state)[源代码]

Gated recurrent unit (GRU) with Graph Convolution.

参数
  • inputs – shape (batch, self.num_nodes * self.dim)

  • state – shape (batch, self.num_nodes * self.gru_units)

返回

shape (B, num_nodes * gru_units)

返回类型

torch.tensor

init_params(bias_start=0.0)[源代码]
training: bool
libcity.model.traffic_speed_prediction.TGCN.calculate_normalized_laplacian(adj)[源代码]

L = D^-1/2 (D-A) D^-1/2 = I - D^-1/2 A D^-1/2

参数

adj – adj matrix

返回

L

返回类型

np.ndarray