aibox.nlp.estimators.generic.lstm

Estimador baseado na arquitetura LSTM.

Classes

LSTMEstimator(hidden_size, num_layers, kind)

Estimador LSTM genérico utilizando torch.nn.LSTM.

class aibox.nlp.estimators.generic.lstm.LSTMEstimator(hidden_size: int, num_layers: int, kind: Literal['classifier', 'regressor'], random_state: int | None = None, epochs: int = 100, bias: bool = True, dropout_prob: float = 0, bidirectional: bool = False, proj_size: int = 0, learning_rate: float = 0.001, optim_params: dict = {}, optim: Literal['adam', 'adamw', 'rmsprop', 'adagrad', 'sgd'] = 'adamw', regression_ensure_bounds: bool = False, train_batch_size: int = 256, device: str | None = None, dtype=torch.float32)[código-fonte]

Base: Estimator

Estimador LSTM genérico utilizando torch.nn.LSTM.

Parâmetros:
  • hidden_size (int) – número de features no estado escondido h.

  • num_layers (int) – quantidade de camadas recorrentes (stacked LSTM).

  • kind (Literal['classifier', 'regressor']) – se é uma rede de classificação ou regressão.

  • random_state (int | None) – seed.

  • epochs (int) – quantidade de épocas a ser utilizadas no momento do treinamento.

  • bias (bool) – se a camada LSTM deve possuir bias ou não.

  • dropout_prob (float) – probabilidade de dropout. Se não zero, introduz uma camada de dropout para cada saída da LSTM.

  • bidirectional (bool) – se a LSTM deve ser bidirecional.

  • proj_size (int) – se maior que 0, a LSTM utiliza projeções com esse tamanho.

  • learning_rate (float) – taxa de aprendizado do otimizador.

  • optim_params (dict) – parâmetros extras a serem passados para o otimizador além da taxa de aprendizado.

  • optim (Literal['adam', 'adamw', 'rmsprop', 'adagrad', 'sgd']) – otimizador a ser utilizado.

  • regression_ensure_bounds (bool) – se os limites devem ser respeitados em redes de regressão.

  • train_batch_size (int) – tamanho do batch para treinamento.

  • device (str) – dispositivo que o modelo deve ser armazenado.

  • dtype – dtype esperado pela rede. Conversões são realizadas automaticamente.

O modelo é construído na primeira chamada ao método fit(). A arquitetura consiste em:
  1. Camada LSTM que recebe o tamanho da entrada;

  2. n - 1 camadas LSTM que recebem a saída da anterior como entrada;

  3. Uma camada de extração dos estados escondidos;

  4. Uma camada totalmente conectada com ativação linear;

A saída do modelo depende se a rede é de classificação (logits) ou regressão (valor numérico).

Esse estimador também permite que o shape de entrada (para os métodos fit() e predict()) seja (n_samples, variable_seq_size, n_features).

fit(X: list[int] | list[float] | ndarray[int32] | ndarray[float32] | Tensor, y: list[int] | list[float] | ndarray[int32] | ndarray[float32] | Tensor, **kwargs) None[código-fonte]

Realiza o treinamento do estimador.

Parâmetros:
Tipo de retorno:

None

predict(X: list[int] | list[float] | ndarray[int32] | ndarray[float32] | Tensor, **kwargs) None[código-fonte]

Realiza a predição utilizando os parâmetros atuais do modelo.

Parâmetros:
  • X (list[int] | list[float] | ndarray[int32] | ndarray[float32] | Tensor) – dados de entrada com shape (n_samples, n_features).

  • **kwargs – parâmetros extras que podem ser passados para alguns estimadores.

Retorna:

predições com shape (n_samples,).

Tipo de retorno:

None

property hyperparameters: dict

Hiper-parâmetros do modelo. Inclui a seed randômica. Estrutura do dicionário varia entre diferentes estimadores.

Retorna:

dicionário de hiper-parâmetros.

property params: dict

Retorna um dicionário com os parâmetros para esse estimador.

Os parâmetros retornados descrevem totalmente o estado do modelo (e,g. pesos de uma rede, superfícies de decisão, estrutura da árvore de decisão, etc).

Retorna:

parâmetros do estimador.

property random_state: int

Seed randômica utilizada pelo estimador.

Retorna:

seed.