notes de publication CNTK v2.4
Principales caractéristiques de cette version
- Déplacé vers CUDA9, cuDNN 7 et Visual Studio 2017.
- Suppression de la prise en charge de Python 3.4.
- Ajout de la prise en charge du GPU Volta et du FP16.
- Meilleure prise en charge d’ONNX.
- Amélioration de l’UC parf.
- Plus d’OPs.
Ops
top_k
opération : dans le transfert, il calcule les valeurs k supérieures (les plus grandes) et les index correspondants le long de l’axe spécifié. Dans le passage vers l’arrière, le dégradé est dispersé vers les éléments k supérieurs (un élément qui n’est pas dans le haut k obtient un dégradé zéro).gather
l’opération prend désormais en charge un argument d’axesqueeze
etexpand_dims
opérations pour supprimer et ajouter facilement des axes singletonzeros_like
etones_like
opérations. Dans de nombreuses situations, vous pouvez simplement vous appuyer sur CNTK diffuser correctement un simple 0 ou 1, mais parfois vous avez besoin du tensoriel réel.depth_to_space
: réorganise les éléments dans le capteur d’entrée de la dimension de profondeur en blocs spatiaux. L’utilisation classique de cette opération consiste à implémenter la convolution de sous-pixel pour certains modèles de super résolution d’images.space_to_depth
: réorganise les éléments dans le capteur d’entrée des dimensions spatiales à la dimension de profondeur. Il s’agit en grande partie de l’inverse de DepthToSpace.sum
opération : Créez une instance de fonction qui calcule la somme d’éléments des tenseurs d’entrée.softsign
opération : Créez une instance de fonction qui calcule l’signature réversible d’élément d’un tensor d’entrée.asinh
opération : Créez une instance de fonction qui calcule l’asinh d’élément d’un tensor d’entrée.log_softmax
opération : Créez une instance de fonction qui calcule les valeurs normalisées logsoftmax d’un tensor d’entrée.hard_sigmoid
opération : Créez une instance de fonction qui calcule les hard_sigmoid valeurs normalisées d’un tensor d’entrée.element_and
, , ,element_not
,element_or
element_xor
opérations logiques basées sur des élémentsreduce_l1
opération : calcule la norme L1 de l’élément du tensor d’entrée le long des axes fournis.reduce_l2
opération : calcule la norme L2 de l’élément du tensor d’entrée le long des axes fournis..reduce_sum_square
opération : calcule le carré somme de l’élément du tensor d’entrée le long des axes fournis.image_scaler
opération : Modification de l’image en mettant à l’échelle ses valeurs individuelles.
ONNX
- Plusieurs améliorations ont été apportées à la prise en charge d’ONNX dans CNTK.
- Mises à jour
- Mise à jour de l’opération ONNX
Reshape
pour gérerInferredDimension
. - Ajout
producer_name
etproducer_version
champs aux modèles ONNX. - Gestion du cas lorsque ni atrribute n’est
auto_pad
pads
spécifié dans l’op ONNXConv
.
- Mise à jour de l’opération ONNX
- Résolution des bogues
- Correction d’un bogue dans la sérialisation des opérations ONNX
Pooling
- Correction de bogue pour créer ONNX
InputVariable
avec un seul axe de lot. - Correctifs de bogues et mises à jour de l’implémentation d’OP ONNX
Transpose
pour correspondre aux spécifications mises à jour. - Correctifs de bogues et mises à jour de l’implémentation d’ONNX
Conv
etConvTranspose
Pooling
d’opérations pour correspondre aux spécifications mises à jour.
- Correction d’un bogue dans la sérialisation des opérations ONNX
Opérateurs
- Convolution de groupe
- Correction d’un bogue dans la convolution de groupe. La sortie de CNTK
Convolution
op change pour les groupes > 1. L’implémentation plus optimisée de la convolution de groupe est attendue dans la prochaine version. - Meilleure création de rapports d’erreurs pour la convolution de groupe dans
Convolution
la couche.
- Correction d’un bogue dans la convolution de groupe. La sortie de CNTK
Convolution binaire halide
- La build CNTK peut désormais utiliser des bibliothèques Halide facultatives pour générer
Cntk.BinaryConvolution.so/dll
une bibliothèque qui peut être utilisée avec lenetopt
module. La bibliothèque contient des opérateurs de convolution binaire optimisés qui s’exécutent mieux que les opérateurs binarisés binarisés de convolution. Pour activer Halide dans la build, téléchargez la version Halide et définissezHALIDE_PATH
la varibale d’environnement avant de démarrer une build. Dans Linux, vous pouvez l’utiliser./configure --with-halide[=directory]
pour l’activer. Pour plus d’informations sur l’utilisation de cette fonctionnalité, reportez-vous à How_to_use_network_optimization.