seq2seq_pde_solver

class torchquantlib.utils.seq2seq_pde_solver.Seq2SeqPDESolver(input_dim, hidden_dim, output_dim, num_layers=1)[source]

Bases: Module

Sequence-to-Sequence model for solving Partial Differential Equations (PDEs).

This model uses an encoder-decoder architecture with LSTM layers to approximate solutions to PDEs. It can be used for various financial applications such as option pricing or interest rate modeling.

forward(src, trg, teacher_forcing_ratio=0.5)[source]

Forward pass of the Seq2SeqPDESolver.

Parameters:
  • src (Tensor) – Source sequence representing initial/boundary conditions. Shape: (batch_size, src_seq_len, input_dim)

  • trg (Tensor) – Target sequence representing the expected solution trajectory. Shape: (batch_size, trg_seq_len, output_dim)

  • teacher_forcing_ratio (float) – Probability of using teacher forcing during training.

Returns:

Predicted solution trajectory. Shape: (batch_size, trg_seq_len, output_dim)

Return type:

Tensor

class torchquantlib.utils.seq2seq_pde_solver.Seq2SeqPDESolver(input_dim, hidden_dim, output_dim, num_layers=1)[source]

Bases: Module

Sequence-to-Sequence model for solving Partial Differential Equations (PDEs).

This model uses an encoder-decoder architecture with LSTM layers to approximate solutions to PDEs. It can be used for various financial applications such as option pricing or interest rate modeling.

__init__(input_dim, hidden_dim, output_dim, num_layers=1)[source]

Initialize the Seq2SeqPDESolver.

Parameters:
  • input_dim (int) – Dimension of the input features.

  • hidden_dim (int) – Dimension of the hidden state in LSTM layers.

  • output_dim (int) – Dimension of the output (solution) at each time step.

  • num_layers (int) – Number of LSTM layers in both encoder and decoder.

Methods

forward(src, trg, teacher_forcing_ratio=0.5)[source]

Forward pass of the Seq2SeqPDESolver.

Parameters:
  • src (Tensor) – Source sequence representing initial/boundary conditions. Shape: (batch_size, src_seq_len, input_dim)

  • trg (Tensor) – Target sequence representing the expected solution trajectory. Shape: (batch_size, trg_seq_len, output_dim)

  • teacher_forcing_ratio (float) – Probability of using teacher forcing during training.

Returns:

Predicted solution trajectory. Shape: (batch_size, trg_seq_len, output_dim)

Return type:

Tensor

Attributes

encoder
decoder

Example Usage

import torch
from torchquantlib.utils.seq2seq_pde_solver import Seq2SeqPDESolver

# Define your encoder and decoder architectures
encoder = YourEncoderClass(...)
decoder = YourDecoderClass(...)

# Initialize the Seq2SeqPDESolver
pde_solver = Seq2SeqPDESolver(encoder, decoder)

# Prepare your input data
input_data = torch.randn(batch_size, sequence_length, input_dim)

# Solve the PDE
output = pde_solver(input_data)

Note

Make sure to replace YourEncoderClass and YourDecoderClass with your actual encoder and decoder implementations.

forward(src, trg, teacher_forcing_ratio=0.5)[source]

Forward pass of the Seq2SeqPDESolver.

Parameters:
  • src (Tensor) – Source sequence representing initial/boundary conditions. Shape: (batch_size, src_seq_len, input_dim)

  • trg (Tensor) – Target sequence representing the expected solution trajectory. Shape: (batch_size, trg_seq_len, output_dim)

  • teacher_forcing_ratio (float) – Probability of using teacher forcing during training.

Returns:

Predicted solution trajectory. Shape: (batch_size, trg_seq_len, output_dim)

Return type:

Tensor