Ce référentiel contient la réimplémentation pytorch de la couche MOE peu intenue décrite dans le document des réseaux neuronaux scandaleusement grands pour Pytorch.
from moe import MoE
import torch
# instantiate the MoE layer
model = MoE ( input_size = 1000 , output_size = 20 , num_experts = 10 , hidden_size = 66 , k = 4 , noisy_gating = True )
X = torch . rand ( 32 , 1000 )
#train
model . train ()
# forward
y_hat , aux_loss = model ( X )
# evaluation
model . eval ()
y_hat , aux_loss = model ( X )Pour installer les exigences exécutées:
pip install -r requirements.py
Le fichier example.py contient un exemple de travail minimal illustrant comment former et évaluer la couche MOE avec des entrées et des cibles factices. Pour exécuter l'exemple:
python example.py
Le fichier cifar10_example.py contient un exemple de travail minimal de l'ensemble de données CIFAR 10. Il atteint une précision de 39% avec des hyper-paramètres arbitraires et non entièrement convergée. Pour exécuter l'exemple:
python cifar10_example.py
FASTMOE: Un système de formation rapide de mélange d'experts Cette implémentation a été utilisée comme implémentation de référence Pytorch pour la formation à GPU unique.
Le code est basé sur l'implémentation TensorFlow qui peut être trouvé ici.
@misc{rau2019moe,
title={Sparsely-gated Mixture-of-Experts PyTorch implementation},
author={Rau, David},
journal={https://github.com/davidmrau/mixture-of-experts},
year={2019}
}