Dieses Repository enthält die Pytorch-Neuimplementierung der spärlich gestalteten MOE-Schicht, die in dem Papier empörend große neuronale Netzwerke für Pytorch beschrieben wird.
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 )So installieren Sie die Anforderungen ausgeführt:
pip install -r requirements.py
Das Beispiel für Datei example.py enthält ein minimales Arbeitsbeispiel, das zeigt, wie die MOE -Schicht mit Dummy -Eingängen und -Zielen trainiert und bewertet wird. Um das Beispiel auszuführen:
python example.py
Die Datei cifar10_example.py enthält ein minimales Arbeitsbeispiel des CIFAR 10 -Datensatzes. Es erreicht eine Genauigkeit von 39% mit willkürlichen Hyperparametern und nicht vollständig konvergiert. Um das Beispiel auszuführen:
python cifar10_example.py
FASTMOE: Ein Fast-Mischungs-Experten-Trainingssystem Diese Implementierung wurde als Referenz-Pytorch-Implementierung für eine Einzel-GPU-Schulung verwendet.
Der Code basiert auf der TensorFlow -Implementierung, die hier zu finden ist.
@misc{rau2019moe,
title={Sparsely-gated Mixture-of-Experts PyTorch implementation},
author={Rau, David},
journal={https://github.com/davidmrau/mixture-of-experts},
year={2019}
}