Aller au contenu principal

model

Chargeur de modèle

Ce module fournit une fonction et des classes pour charger et utiliser un modèle de solveur AlphaCube pré-entraîné.

Fonction : load_model(model_id, cache_dir) : Charge le modèle de solveur AlphaCube pré-entraîné.

Classes :

  • Model : L'architecture MLP pour le solveur AlphaCube.
  • LinearBlock : Un bloc de construction pour l'architecture MLP.

load_model​

def load_model(
model_id="small",
cache_dir=os.path.expanduser("~/.cache/alphacube")
)

Charge le modèle de solveur AlphaCube pré-entraîné.

Arguments :

  • model_id str - Identifiant de la variante du modèle à charger (« small », « base » ou « large »).
  • cache_dir str - Répertoire pour mettre en cache le modèle téléchargé.

Retourne :

  • nn.Module - Modèle de solveur AlphaCube chargé.

Model_v1​

class Model_v1(nn.Module)

L'architecture MLP pour le solveur de Rubik's Cube à calcul optimal introduite dans l'article suivant : https://openreview.net/forum?id=bnBeNFB27b

forward​

def forward(inputs)

Passe avant du modèle.

Arguments :

  • inputs torch.Tensor - Tenseur d'entrée représentant l'état du problème.

Retourne :

  • torch.Tensor - Distribution prédite sur les solutions possibles.

Model​

class Model(nn.Module)

Une architecture meilleure que Model.

Changements :

  • Suppression de l'activation ReLU de la première couche (embedding), qui souffrait du problème du « dying ReLU » (ReLU mourant).
  • Suivant la convention récente, la couche embedding ne compte pas comme une couche cachée.

reset_parameters​

def reset_parameters()

Initialise tous les poids de sorte que les variances d'activation soient approximativement de 1.0, avec les termes de biais et les poids de la couche de sortie étant à zéro.

forward​

def forward(inputs)

Passe avant du modèle.

Arguments :

  • inputs torch.Tensor - Tenseur d'entrée représentant l'état du problème.

Retourne :

  • torch.Tensor - Distribution prédite sur les solutions possibles.

LinearBlock​

class LinearBlock(nn.Module)

Un bloc de construction pour l'architecture MLP.

Ce bloc se compose d'une couche linéaire suivie d'une activation ReLU et d'une normalisation par lots (batch normalization).

forward​

def forward(inputs)

Passe avant du bloc linéaire.

Arguments :

  • inputs torch.Tensor - Tenseur d'entrée.

Retourne :

  • torch.Tensor - Tenseur de sortie après transformation linéaire, activation ReLU et normalisation par lots.