Programa de Python basado en el pronóstico de series de tiempo LSTM

Características: 1. Entrada de variable única y variable múltiple, conmutación libre 

           2. Pronóstico de un solo paso, pronóstico de varios pasos, cambio automático

           3. Basado en la arquitectura Pytorch

           4. Múltiples indicadores de evaluación (MAE, MSE, R2, MAPE, etc.)

           5. Los datos se leen del archivo de Excel, fácil de reemplazar

           6. Marco estándar, los datos se dividen en conjunto de entrenamiento, conjunto de verificación y conjunto de prueba

 Todo el código completo, el código que está garantizado para ejecutar se puede ver aquí.

http://t.csdn.cn/obJlC http://t.csdn.cn/obJlC

  ! ! ! Si no se puede abrir el primer enlace, haga clic en la página de inicio personal para ver mi presentación personal.

(Después de buscar el producto, haga clic en el avatar para ver todos los códigos)

Blog de Black Technology Little Potato_CSDN Blog-Deep Learning, Blogger en 32 MCU Field

El modelo LSTM (Long Short-Term Memory) es un popular modelo de red neuronal recurrente (RNN) diseñado para modelar datos de series temporales. En comparación con el modelo RNN tradicional, el modelo LSTM presenta tres controladores de puerta (puerta de entrada, puerta de olvido, puerta de salida), que pueden resolver eficazmente el problema de la dependencia a largo plazo, para capturar mejor los datos de secuencia. la información histórica mejora el rendimiento del modelo.

El punto clave del modelo LSTM es la celda de memoria, que puede aprender y olvidar información y controlar el flujo de información histórica. El modelo LSTM integra la entrada actual y la información histórica a través de la puerta, para realizar la memoria o el olvido de la entrada y el estado histórico. Específicamente, la puerta de entrada controla la importancia de la entrada actual, la puerta de olvido controla el grado de olvido del estado histórico y la puerta de salida controla la importancia de la salida.

Las ventajas de los modelos LSTM incluyen:

  1. El modelo LSTM introduce el mecanismo de puerta, que resuelve eficazmente el problema de dependencia a largo plazo en el modelo RNN tradicional, fortalece la captura y memoria de información histórica y mejora el rendimiento del modelo.
  2. Los modelos LSTM pueden aprender y olvidar información durante intervalos de tiempo más largos y tienen una mejor memoria a largo plazo que los RNN tradicionales.

Por lo tanto, el modelo LSTM es un modelo clásico adecuado para varios problemas de series temporales y se usa ampliamente en modelos de lenguaje, reconocimiento de texto, reconocimiento de voz y otros campos.

class LSTM(nn.Module):
    def __init__(self, input_size, hidden_size, num_layers, batch_size, device="cpu"):
        super().__init__()
        self.device = device
        self.input_size = input_size
        self.hidden_size = hidden_size
        self.num_layers = num_layers
        self.batch_size = batch_size
        self.lstm = nn.LSTM(self.input_size, self.hidden_size, self.num_layers, batch_first=True, bidirectional=False)

    def forward(self, input_seq):
        batch_size, seq_len = input_seq.shape[0], input_seq.shape[1]
        h_0 = torch.randn(self.num_layers, batch_size, self.hidden_size).to(self.device)
        c_0 = torch.randn(self.num_layers, batch_size, self.hidden_size).to(self.device)
        output, (h, c) = self.lstm(input_seq, (h_0, c_0))
        return output, h

 

Supongo que te gusta

Origin blog.csdn.net/qq_41728700/article/details/129289442
Recomendado
Clasificación