| 12345678910111213141516171819202122232425262728293031323334353637 |
- import torch
- import torch.nn as nn
- import torch.nn.functional as F
- from base import BaseModel
- class GRUModel(BaseModel):
- def __init__(self, input_channels, output_channels, input_len, pred_len, hidden_channels , layers = 1):
- super(GRUModel, self).__init__()
- self.input_channels = input_channels
- self.output_channels = output_channels
- self.input_len = input_len
- self.pred_len = pred_len
- self.hidden_channels = hidden_channels
- self.layers = layers
- self.GRU = nn.GRU(input_size = self.input_channels,
- hidden_size = self.hidden_channels,
- num_layers = self.layers,
- batch_first = True)
- self.out_linear = nn.Linear(in_features = self.hidden_channels,out_features = self.output_channels)
- def forward(self, x):
- x , hidden = self.GRU(x)
- x = self.out_linear(x)
- B , L , C = x.shape
- x = x.reshape(B,-1)
- return x
- def set_device(self,device):
- self.device = device
- # input = torch.randn((32,96,5))
- # model = GRUModel(input_channels = 5, output_channels = 1, input_len = 96, pred_len = 96, hidden_channels = 64 , layers = 1)
- # out = model(input)
- # print(out.shape)
|