Demi - précision mxnet (fp16)

Ai Visual Network Strange 2021-08-19 23:45:23 阅读数:27

demi pr cision mxnet fp16

MXNetFormation semi - précise
1.Conditions préalables
Volta range of Nvidia GPUs (e.g. AWS P3 instance)
CUDA 9 or higher
cuDNN v7 or higher
2.UtiliserGluon APIFormation et raisonnement avancé
2.1Formation
UtilisercastRéglez le réseau àfloat16Formation à la précision

net.cast('float16')
data = data.astype('float16', copy=False)
optimizer = mx.optimizer.create('sgd', multi_precision=True, lr=0.01)



2.fine tuning

import numpy as np
import mxnet as mx
from mxnet.gluon.model_zoo.vision import get_model
pretrained_net = get_model(name='resnet50_v2', ctx=mx.cpu(),
                           pretrained=True, classes=1000)
pretrained_net.cast('float16')
net = get_model(name='resnet50_v2', ctx=mx.cpu(),
                pretrained=False, classes=101)
net.collect_params().initialize(mx.init.Xavier(magnitude=2.24), ctx=mx.cpu())
net.features = pretrained_net.features
net.cast('float16')



2UtiliserSymbolic APIInfloat16 Réseau d'entraînement
Les étapes suivantes sont impliquées .

Ajouter une couche au début du réseau ,Convertir les données enfloat16. Cela permettra de s'assurer que le float16 Toutes les couches suivantes sont calculées dans .
Recommandationssoftmax Conversion précédente de la sortie du calque en float32,Pour quesoftmaxCalculé àfloat32Terminé..C'est parce quesoftmax Impliquant une réduction significative , Et aide à le garder dans float32 Pour obtenir des réponses plus précises .
Il est recommandé d'utiliser le mode multi - précision de l'optimiseur pour une mise à jour plus précise du poids .
Voici comment activer ce mode lors de la création de l'optimiseur .
optimizer = mx.optimizer.create('sgd', multi_precision=True, lr=0.01)
1
Exemple

data = mx.sym.Variable(name="data")
if dtype == 'float16':
    data = mx.sym.Cast(data=data, dtype=np.float16)
# ... the rest of the network
net_out = net(data)
if dtype == 'float16':
    net_out = mx.sym.Cast(data=net_out, dtype=np.float32)
output = mx.sym.SoftmaxOutput(data=net_out, name='softmax')



http://mxnet.incubator.apache.org/versions/master/faq/float16.html?highlight=distributed training
Installation accélérée
pip install mxnet-cu80 -i https://pypi.tuna.tsinghua.edu.cn/simple/

MXNet Formation distribuée
https://github.com/MaJun-cn/DistributedTraining_inMXNet
https://github.com/apache/incubator-mxnet/tree/master/example/distributed_training

conda Nettoyer les paquets d'installation inutiles

conda clean -p      // Supprimer les paquets inutiles
conda clean -t      //tarEmballez
conda clean -y -all // Supprimer tous les paquets d'installation et cache
1
2
3
pytorch Formation distribuée
————————————————
Avis de copyright:Cet article estCSDNBlogueurs「SoftGit」Article original de,SuivreCC 4.0 BY-SAAccord de droit d'auteur,Veuillez joindre un lien vers la source originale et cette déclaration..
Lien vers le texte original:https://blog.csdn.net/fengzhongluoleidehua/article/details/95056696

Copyright:Cet article est[Ai Visual Network Strange]Établi,Veuillez apporter le lien original pour réimprimer,remercier。 https://fra.fheadline.com/2021/08/20210819234520095r.html