File size: 1,188 Bytes
cbe6208 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | """Average value model"""
import torch
from torch import nn
import pvnet
from pvnet.models.base_model import BaseModel
from pvnet.optimizers import AbstractOptimizer
class Model(BaseModel):
"""Simple baseline model that predicts always the same value."""
name = "single_value"
def __init__(
self,
forecast_minutes: int = 120,
history_minutes: int = 60,
optimizer: AbstractOptimizer = pvnet.optimizers.Adam(),
):
"""Simple baseline model that predicts always the same value.
Args:
history_minutes (int): Length of the GSP history period in minutes
forecast_minutes (int): Length of the GSP forecast period in minutes
optimizer (AbstractOptimizer): Optimizer
"""
super().__init__(history_minutes, forecast_minutes, optimizer)
self._value = nn.Parameter(torch.zeros(1), requires_grad=True)
self.save_hyperparameters()
def forward(self, x: dict):
"""Run model forward on dict batch of data"""
# Returns a single value at all steps
y_hat = torch.zeros_like(x["gsp"][:, : self.forecast_len]) + self._value
return y_hat
|