web-dev-qa-db-fra.com

Reproductibilité et performance à Pytorch

Le Documentation STATS:

Le mode déterministe peut avoir un impact sur la performance, en fonction de votre modèle.

Ma question est que ce que l'on entend par la performance ici. La vitesse de traitement ou la qualité du modèle (c'est-à-dire une perte minimale)? En d'autres termes, lors de la définition de graines manuelles et de faire le modèle performer de manière déterministe, cela provoque-t-il une durée de formation plus longue jusqu'à ce que la perte minimale soit trouvée ou que la perte minimale pire que lorsque le modèle n'est pas déterministe?

Pour la complétude, je fais manuellement le modèle déterministe en définissant toutes ces propriétés:

def set_seed(seed):
    torch.manual_seed(seed)
    torch.cuda.manual_seed_all(seed)
    torch.backends.cudnn.deterministic = True
    torch.backends.cudnn.benchmark = False
    np.random.seed(seed)
    random.seed(seed)
    os.environ['PYTHONHASHSEED'] = str(seed)
12
Bram Vanroy

La performance fait référence au temps d'exécution; Cudnn a plusieurs modes de mise en œuvre, quand cudnn.deterministic est défini sur true, vous dites à Cudnn que vous n'avez besoin que des implémentations déterministes (ou de ce que nous croyons qu'ils sont). En un mot, lorsque vous le faites, vous devez vous attendre à ce que vous devez vous attendre à mêmes résultats sur la CPU ou le GPU sur le même système lors de l'alimentation du Same les entrées. Pourquoi cela affecterait-il la performance? Cudnn utilise des heuristiques pour le choix de la mise en œuvre. Donc, cela dépend en fait de votre modèle comment Cudnn se comportera; Le choix d'être déterministe peut affecter le temps d'exécution parce que leur aurait pu être, disons un moyen plus rapide de les choisir au même point de courir.


En ce qui concerne votre extrait, je fais l'ensemencement exact, il fonctionne bien (en termes de reproductibilité) pour plus de 100+ DL expériences.

4
Andrew Naguib

"Performance" dans ce contexte se réfère au temps d'exécution

1
Shai