38
Sujet: Comment intégrer de la binarisation de réseau dans les algorithmes de deep learning? MERCIER Julien Séminaire GreenAI 2 1

Séminaire GreenAI 2

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Séminaire GreenAI 2

Sujet: Comment intégrer de la binarisation de réseau

dans les algorithmes de deep learning?

MERCIER Julien

Séminaire GreenAI 2

1

Page 2: Séminaire GreenAI 2

L’intelligence artificielle2

Voitures autonomes

Robots intelligents

Enceintes connectées

Page 3: Séminaire GreenAI 2

Qu’est ce que l’intelligence artificielle?

Machines ou systèmes visant à imiter l’intelligence humaine

Objectif:

Assister l’Homme dans des tâches de la vie courante

3

Page 4: Séminaire GreenAI 2

Deep Learning,

c’est quoi?

4

Apprentissage par couches

successives

Minimiser l’effort d’ingénierie

Apprentissage des paramètres à

partir des données

Cela demande:

Un grand nombre de paramètres

De gros moyen de calcul

Page 5: Séminaire GreenAI 2

Problèmes / Motivations

Algorithme difficile à embarquer

Empreinte carbone grandissante

5

Solutions

Algorithme binaire

Léger

Rapide

Page 6: Séminaire GreenAI 2

Plan

Méthodes

Expériences

Gains

6

Page 7: Séminaire GreenAI 2

Définition des variables et algorithme général

K : correspondra au nombre de couches

𝒂𝒌 : sortie de la couche k

𝑾𝒌 : paramètre à apprendre

𝒂𝟎 : données d’entrée

L(𝒂𝑲, 𝒂∗) : perte entre la prédiction du

réseau 𝑎𝑘 et la vérité terrain 𝑎∗.

lr : taux d’apprentissage utilisé pour la

mise à jour des poids

𝒄𝒐𝒖𝒄𝒉𝒆𝒌 : couche k paramétrée par des

poids W_k à apprendre(linéaire, convolution,

…)

𝒂𝒄𝒕𝒊𝒗𝒂𝒕𝒊𝒐𝒏𝒌 : non linéarité de la couche k

(softmax, sigmoid, …)

Schéma réseau Deep Learning classique à K couches

7

Page 8: Séminaire GreenAI 2

Algorithme de Deep Learning général

Prédiction (passe forward)

Descente de gradient

Calcul du gradient par

rétropropagation

Mise à jour des poids

1- Prédiction

𝑃𝑜𝑢𝑟 𝑘 𝑎𝑙𝑙𝑎𝑛𝑡 𝑑𝑒 1 à 𝐾:𝑥 ← 𝑐𝑜𝑢𝑐ℎ𝑒𝑘 (𝑊𝑘 , 𝑎𝑘−1)𝑎𝑘 ← 𝑎𝑐𝑡𝑖𝑣𝑎𝑡𝑖𝑜𝑛𝑘(𝑥)

2- Rétropropagation du gradient

𝐶𝑎𝑙𝑐𝑢𝑙𝑒𝑟𝑑𝐿

𝑑𝑎𝑘;

𝑃𝑜𝑢𝑟 𝑘 𝑎𝑙𝑙𝑎𝑛𝑡 𝑑𝑒 𝐾 à 1:𝑑𝐿

𝑑𝑊𝑘←

𝑑𝐿

𝑑𝑎𝑘

𝑑𝑎𝑘𝑑𝑊𝑘

𝑆𝑖 𝑘 > 1:𝑑𝐿

𝑑𝑎𝑘−1←

𝑑𝐿

𝑑𝑊𝑘

𝑑𝑊𝑘

𝑑𝑎𝑘−1

3- Mise à jour des poids

𝑃𝑜𝑢𝑟 𝑘 𝑎𝑙𝑙𝑎𝑛𝑡 𝑑𝑒 1 à 𝐾:

𝑊𝑘 ← 𝑊𝑘 − 𝑙𝑟 ∗𝑑𝐿

𝑑𝑊𝑘

8

Page 9: Séminaire GreenAI 2

BinaryConnect (2016, Courbariaux)

Binarisation des poids (𝑊𝑏)

9

Titre: Training Deep Neural Networks with binary weights

during propagations

Page 10: Séminaire GreenAI 2

Ajout d’une étape

d’initialisation des poids

binaires

Utilisations des poids

binaires

Stockage et binarisation

des poids

Introduction à l’algorithme de BinaryConnect

1- Prédiction

𝑃𝑜𝑢𝑟 𝑘 𝑎𝑙𝑙𝑎𝑛𝑡 𝑑𝑒 1 à 𝐾:𝑥 ← 𝑐𝑜𝑢𝑐ℎ𝑒𝑘 (𝑊𝑘 , 𝑎𝑘−1)𝑎𝑘 ← 𝑎𝑐𝑡𝑖𝑣𝑎𝑡𝑖𝑜𝑛𝑘(𝑥)

2- Rétropropagation du gradient

𝐶𝑎𝑙𝑐𝑢𝑙𝑒𝑟𝑑𝐿

𝑑𝑎𝑘;

𝑃𝑜𝑢𝑟 𝑘 𝑎𝑙𝑙𝑎𝑛𝑡 𝑑𝑒 𝐾 à 1:𝑑𝐿

𝑑𝑊𝑘←

𝑑𝐿

𝑑𝑎𝑘

𝑑𝑎𝑘𝑑𝑊𝑘

𝑆𝑖 𝑘 > 1:𝑑𝐿

𝑑𝑎𝑘−1←

𝑑𝐿

𝑑𝑊𝑘

𝑑𝑊𝑘

𝑑𝑎𝑘−1

3- Mise à jour des poids

𝑃𝑜𝑢𝑟 𝑘 𝑎𝑙𝑙𝑎𝑛𝑡 𝑑𝑒 1 à 𝐾:

𝑊𝑘 ← 𝑊𝑘 − 𝑙𝑟 ∗𝑑𝐿

𝑑𝑊𝑘

Initialisation des poids binaires

Binarisation des

poids10

Page 11: Séminaire GreenAI 2

Définition de la fonction sign():

Sign x = ቊ−1 𝑠𝑖 𝑥 < 0+1 𝑠𝑖 𝑥 ≥ 0

Utilisations des poids

binaires lors de la prédiction

Algorithme de BinaryConnect

1- Initialisation des poids binaires

𝑃𝑜𝑢𝑟 𝑘 𝑎𝑙𝑙𝑎𝑛𝑡 𝑑𝑒 1 à 𝐾:

𝑊𝑘𝑏= 𝑠𝑖𝑔𝑛(𝑊𝑘)

2- Prédiction

𝑃𝑜𝑢𝑟 𝑘 𝑎𝑙𝑙𝑎𝑛𝑡 𝑑𝑒 1 à 𝐾:

𝑥 ← 𝑐𝑜𝑢𝑐ℎ𝑒𝑘 (𝑊𝑘𝑏, 𝑎𝑘−1)

𝑎𝑘 ← 𝑎𝑐𝑡𝑖𝑣𝑎𝑡𝑖𝑜𝑛𝑘(𝑥)

3- Rétropropagation du gradient

𝐶𝑎𝑙𝑐𝑢𝑙𝑒𝑟𝑑𝐿

𝑑𝑎𝑘;

𝑃𝑜𝑢𝑟 𝑘 𝑎𝑙𝑙𝑎𝑛𝑡 𝑑𝑒 𝐾 à 1:𝑑𝐿

𝑑𝑊𝑘←

𝑑𝐿

𝑑𝑎𝑘

𝑑𝑎𝑘𝑑𝑊𝑘

𝑆𝑖 𝑘 > 1:𝑑𝐿

𝑑𝑎𝑘−1←

𝑑𝐿

𝑑𝑊𝑘

𝑑𝑊𝑘

𝑑𝑎𝑘−1

3- Mise à jour des poids

𝑃𝑜𝑢𝑟 𝑘 𝑎𝑙𝑙𝑎𝑛𝑡 𝑑𝑒 1 à 𝐾:

𝑊𝑘 ← 𝑊𝑘 − 𝑙𝑟 ∗𝑑𝐿

𝑑𝑊𝑘

Binarisation des poids

11

Page 12: Séminaire GreenAI 2

Algorithme de BinaryConnect

1- Initialisation des poids binaires

𝑃𝑜𝑢𝑟 𝑘 𝑎𝑙𝑙𝑎𝑛𝑡 𝑑𝑒 1 à 𝐾:

𝑊𝑘𝑏= 𝑠𝑖𝑔𝑛(𝑊𝑘)

2- Prédiction

𝑃𝑜𝑢𝑟 𝑘 𝑎𝑙𝑙𝑎𝑛𝑡 𝑑𝑒 1 à 𝐾:

𝑥 ← 𝑐𝑜𝑢𝑐ℎ𝑒𝑘 (𝑊𝑘𝑏, 𝑎𝑘−1)

𝑎𝑘 ← 𝑎𝑐𝑡𝑖𝑣𝑎𝑡𝑖𝑜𝑛𝑘(𝑥)

3- Rétropropagation du gradient

𝐶𝑎𝑙𝑐𝑢𝑙𝑒𝑟𝑑𝐿

𝑑𝑎𝑘;

𝑃𝑜𝑢𝑟 𝑘 𝑎𝑙𝑙𝑎𝑛𝑡 𝑑𝑒 𝐾 à 1:𝑑𝐿

𝑑𝑊𝑘𝑏 ←

𝑑𝐿

𝑑𝑎𝑘

𝑑𝑎𝑘

𝑑𝑊𝑘𝑏

𝑆𝑖 𝑘 > 1:

𝑑𝐿

𝑑𝑎𝑘−1←

𝑑𝐿

𝑑𝑊𝑘𝑏

𝑑𝑊𝑘𝑏

𝑑𝑎𝑘−1

4- Mise à jour des poids

𝑃𝑜𝑢𝑟 𝑘 𝑎𝑙𝑙𝑎𝑛𝑡 𝑑𝑒 1 à 𝐾:

𝑊𝑘 ← 𝑊𝑘 − 𝑙𝑟 ∗𝑑𝐿

𝑑𝑊𝑘𝑏

𝑊𝑘𝑏= 𝑠𝑖𝑔𝑛(𝑊𝑘)

12

Gradient calculé sur les

poids binaires

Stockage des poids réels

pour la mise à jour par

descente de gradient

Mise à jour des poids

binaires à partir des

nouveaux poids réels

Page 13: Séminaire GreenAI 2

Pourquoi calculer le

gradient avec des poids

binaires et mettre à jour les

poids reels?

Etape importante de BinaryConnect

1- Initialisation des poids binaires

𝑃𝑜𝑢𝑟 𝑘 𝑎𝑙𝑙𝑎𝑛𝑡 𝑑𝑒 1 à 𝐾:

𝑊𝑘𝑏= 𝑠𝑖𝑔𝑛(𝑊𝑘)

2- Prédiction

𝑃𝑜𝑢𝑟 𝑘 𝑎𝑙𝑙𝑎𝑛𝑡 𝑑𝑒 1 à 𝐾:

𝑥 ← 𝑐𝑜𝑢𝑐ℎ𝑒𝑘 (𝑊𝑘𝑏, 𝑎𝑘−1)

𝑎𝑘 ← 𝑎𝑐𝑡𝑖𝑣𝑎𝑡𝑖𝑜𝑛𝑘(𝑥)

3- Rétropropagation du gradient

𝐶𝑎𝑙𝑐𝑢𝑙𝑒𝑟𝑑𝐿

𝑑𝑎𝑘;

𝑃𝑜𝑢𝑟 𝑘 𝑎𝑙𝑙𝑎𝑛𝑡 𝑑𝑒 𝐾 à 1:𝑑𝐿

𝑑𝑊𝑘𝑏 ←

𝑑𝐿

𝑑𝑎𝑘

𝑑𝑎𝑘

𝑑𝑊𝑘𝑏

𝑆𝑖 𝑘 > 1:

𝑑𝐿

𝑑𝑎𝑘−1←

𝑑𝐿

𝑑𝑊𝑘𝑏

𝑑𝑊𝑘𝑏

𝑑𝑎𝑘−1

4- Mise à jour des poids

𝑃𝑜𝑢𝑟 𝑘 𝑎𝑙𝑙𝑎𝑛𝑡 𝑑𝑒 1 à 𝐾:

𝑊𝑘 ← 𝑊𝑘 − 𝑙𝑟 ∗𝑑𝐿

𝑑𝑊𝑘𝑏

𝑊𝑘𝑏= 𝑠𝑖𝑔𝑛(𝑊𝑘)

13

Page 14: Séminaire GreenAI 2

Descente de gradient pour les réseaux de neurones

0

0,2

0,4

0,6

0,8

1

1,2

-1,5 -1 -0,5 0 0,5 1 1,5

L(𝑾𝑲 , 𝒂*) 𝑊0

𝑾𝑲

𝑊0𝑏

14

Page 15: Séminaire GreenAI 2

Descente de gradient pour les réseaux de neurones

0

0,2

0,4

0,6

0,8

1

1,2

-1,5 -1 -0,5 0 0,5 1 1,5

〖𝑊_1〗^𝑏

L(𝑾𝑲 , 𝒂*)

𝑾𝑲

𝑊1

15

Page 16: Séminaire GreenAI 2

Descente de gradient pour les réseaux de neurones

0

0,2

0,4

0,6

0,8

1

1,2

-1,5 -1 -0,5 0 0,5 1 1,5

𝑊_2 〖𝑊_2〗^𝑏

L(𝑾𝑲 , 𝒂*)

𝑾𝑲

16

Page 17: Séminaire GreenAI 2

Descente de gradient pour les réseaux de neurones

0

0,2

0,4

0,6

0,8

1

1,2

-1,5 -1 -0,5 0 0,5 1 1,5

𝑊_3

L(𝑾𝑲 , 𝒂*)

𝑾𝑲

𝑊3𝑏

17

Page 18: Séminaire GreenAI 2

BinaryNetwork (2016, Courbariaux)

Binarisation des poids (𝑊𝑘𝑏)

Binarisation des activations (𝑎𝑘𝑏)

18

Titre: Training Deep Neural Networks with Weights and

Activations Constrained to +1 or -1

Page 19: Séminaire GreenAI 2

Ajout d’une binarisation des

activations (𝑎𝑘)

Modification de la

descente de gradient

Introduction à l’algorithme de BinaryNetwork

1- Initialisation des poids binaires

𝑃𝑜𝑢𝑟 𝑘 𝑎𝑙𝑙𝑎𝑛𝑡 𝑑𝑒 1 à 𝐾:

𝑊𝑘𝑏= 𝑠𝑖𝑔𝑛(𝑊𝑘)

2- Prédiction

𝑃𝑜𝑢𝑟 𝑘 𝑎𝑙𝑙𝑎𝑛𝑡 𝑑𝑒 1 à 𝐾:

𝑥 ← 𝑐𝑜𝑢𝑐ℎ𝑒𝑘 𝑊𝑘𝑏, 𝑎𝑘−1

𝑎𝑘 ← 𝑎𝑐𝑡𝑖𝑣𝑎𝑡𝑖𝑜𝑛𝑘(𝑥)

3- Rétropropagation du gradient

𝐶𝑎𝑙𝑐𝑢𝑙𝑒𝑟𝑑𝐿

𝑑𝑎𝑘;

𝑃𝑜𝑢𝑟 𝑘 𝑎𝑙𝑙𝑎𝑛𝑡 𝑑𝑒 𝐾 à 1:𝑑𝐿

𝑑𝑊𝑘𝑏 ←

𝑑𝐿

𝑑𝑎𝑘

𝑑𝑎𝑘

𝑑𝑊𝑘𝑏

𝑆𝑖 𝑘 > 1:

𝑑𝐿

𝑑𝑎𝑘−1←

𝑑𝐿

𝑑𝑊𝑘𝑏

𝑑𝑊𝑘𝑏

𝑑𝑎𝑘−1

4- Mise à jour des poids

𝑃𝑜𝑢𝑟 𝑘 𝑎𝑙𝑙𝑎𝑛𝑡 𝑑𝑒 1 à 𝐾:

𝑊𝑘 ← 𝑊𝑘 − 𝑙𝑟 ∗𝑑𝐿

𝑑𝑊𝑘

𝑊𝑘𝑏= 𝑠𝑖𝑔𝑛(𝑊𝑘)

19

Page 20: Séminaire GreenAI 2

Ajout d’une binarisation des

activations

Les données d’entrée 𝑎0 et

la dernière couche 𝑎𝐾 ne

sont pas binarisées

Définition de la prédiction de BinaryNetwork

2- Prédiction

𝑃𝑜𝑢𝑟 𝑘 𝑎𝑙𝑙𝑎𝑛𝑡 𝑑𝑒 1 à 𝐾:𝑆𝑖 𝑘 == 1 ∶

𝑎𝑘 ← 𝑐𝑜𝑢𝑐ℎ𝑒𝑘 𝑊𝑘𝑏, 𝑎𝑘−1

𝑆𝑖𝑛𝑜𝑛 ∶

𝑎𝑘 ← 𝑐𝑜𝑢𝑐ℎ𝑒𝑘 𝑊𝑘𝑏, 𝑎𝑘−1

𝑏

𝑆𝑖 𝑘 == 1 ∶𝑎𝑘

𝑏 ← 𝑠𝑖𝑔𝑛(𝑎𝑘)𝑆𝑖𝑛𝑜𝑛 ∶

𝑎𝑘 ← 𝑎𝑐𝑡𝑖𝑣𝑎𝑡𝑖𝑜𝑛𝑘(𝑥)

20

Page 21: Séminaire GreenAI 2

Ajout d’une binarisation des

activations

Les données d’entrée 𝑎0 et

la dernière couche 𝑎𝐾 ne

sont pas binarisées

Définition de la prédiction de BinaryNetwork

2- Prédiction

𝑃𝑜𝑢𝑟 𝑘 𝑎𝑙𝑙𝑎𝑛𝑡 𝑑𝑒 1 à 𝐾:𝑆𝑖 𝑘 == 1 ∶

𝑎𝑘 ← 𝑐𝑜𝑢𝑐ℎ𝑒𝑘 𝑊𝑘𝑏, 𝑎𝑘−1

𝑆𝑖𝑛𝑜𝑛 ∶

𝑎𝑘 ← 𝑐𝑜𝑢𝑐ℎ𝑒𝑘 𝑊𝑘𝑏, 𝑎𝑘−1

𝑏

𝑆𝑖 𝑘 == 1 ∶𝑎𝑘

𝑏 ← 𝑠𝑖𝑔𝑛(𝑎𝑘)𝑆𝑖𝑛𝑜𝑛 ∶

𝑎𝑘 ← 𝑎𝑐𝑡𝑖𝑣𝑎𝑡𝑖𝑜𝑛𝑘(𝑥)

21

Problème: la fonction sign() n’est pas derivable

Page 22: Séminaire GreenAI 2

Calcul du gradient:

𝑑𝐿

𝑑𝑊𝑘𝑏 =

𝑑𝐿

𝑑𝑎𝑘𝑏

𝑑𝑎𝑘𝑏

𝑑𝑎𝑘

𝑑𝑎𝑘

𝑑𝑊𝑘𝑏

Définition d’un straight-through:

𝑆𝑇(𝑥) = 𝑥 ∗ 1{|𝑥|<1}

Rédefinition du gradient:𝑑𝐿

𝑑𝑊𝑘𝑏 ≈

𝑑𝐿

𝑑𝑎𝑘𝑏 𝑆𝑇(

𝑑𝑎𝑘

𝑑𝑊𝑘𝑏)

Problème avec la rétropropagation du gradient de BinaryNetwork

22

Page 23: Séminaire GreenAI 2

Modification de la

descente de gradient

Définition de la rétropagationdu gradient de BinaryNetwork

3- Rétropropagation du gradient

𝐶𝑎𝑙𝑐𝑢𝑙𝑒𝑟𝑑𝐿

𝑑𝑎𝑘;

𝑃𝑜𝑢𝑟 𝑘 𝑎𝑙𝑙𝑎𝑛𝑡 𝑑𝑒 𝐾 à 1:𝑑𝐿

𝑑𝑊𝑘𝑏 ←

𝑑𝐿

𝑑𝑎𝑘𝑏 𝑆𝑇(

𝑑𝑎𝑘

𝑑𝑊𝑘𝑏)

𝑆𝑖 𝑘 > 1:

𝑑𝐿

𝑑𝑎𝑘−1𝑏←

𝑑𝐿

𝑑𝑊𝑘𝑏

𝑑𝑊𝑘𝑏

𝑑𝑎𝑘−1𝑏

23

Page 24: Séminaire GreenAI 2

Expériences

Jeu de données: Cifar 10

Taille des images: 32x32x3

Nombre de données: 50000

24

Page 25: Séminaire GreenAI 2

Protocole

expérimental

Taille du batch: 64

Observation de la perte et

de la justesse de prédiction

Couche cachée à 100

neurones

Clipping des poids et biais

réels entre -1 et 1

5 modèles différents

25

Page 26: Séminaire GreenAI 2

Expériences

Poids réels

Activations réelles

Modèle linéaire et

perceptron à une couche

cachée

Réseau Deep learning général

Schéma modèle linéaire poids réels

Schéma perceptron à une couche cachée

26

Page 27: Séminaire GreenAI 2

Expériences

BinaryConnect

Poids binaires

Modèle linéaire et

perceptron à une couche

cachée

Schéma perceptron à une couche cachée BinaryConnect

27

Schéma modèle linéaire poids binaires

Page 28: Séminaire GreenAI 2

Expériences

BinaryNetwork

Poids binaires

Activation binaire

Architecture du perceptron

à une couche cachée

Modèle linéaire non

disponible

Schéma perceptron à une couche cachée BinaryNetwork

28

Page 29: Séminaire GreenAI 2

Tableau des résultats après 5 itérations

Remarque: L’empreinte mémoire est 32 fois plus petite.

29

Poids réels

Poids binaires Poids réels BinaryConnect BinaryNetwork

Moyenne de la précision

39,36 29,66 51,58 31,7 35,2

Ecart-type 0,65 3,78 0,70 0,68 0,52

Empreinte mémoire (bytes)

0,12 0,004 1,233 0,04 0,04

Nb param 30730 30730 308310 308310 318410

Modèle linéaire Perceptron à 1 couche cachée

Page 30: Séminaire GreenAI 2

Gain énergétique

Empreinte mémoire 32 fois plus petite

Ce qu’on a avec notre implémentation de BinaryNetwork

30

L’empreinte carbone et la consommation énergétique de nos reseaux binaires sont

améliorées à plusieurs niveaux

Page 31: Séminaire GreenAI 2

Consommation

énergétique

Les derniers pourcentages sont

durs à atteindre

A budget énergétique

equivalent, il est plus rentable

d’entrainer des modèles plus

gros

La difficulté d’entrainer des

reseaux binaires et leurs

performances inférieures en

termes de precision rend leur

entrainement plus couteux en

terme d’énergie

31

Page 32: Séminaire GreenAI 2

Gain énergétique

Potentiel du produit matriciel optimisé entre les poids binaires 𝒘𝒌𝒃 et les activations

binaires 𝒂𝒌𝒃

Vitesse d’exécution

x58 sur CPU (ref xnornet, 2016)

x7 sur GPU (ref Courbariaux, 2016)

Suppose une ré-implementation de bas niveau

Instructions binaires supportées par l’architecture du processeurs

Calcul matriciel optimisé (complexité algorithmique, gestion de la

mémoire)

32

Page 33: Séminaire GreenAI 2

BinaryNetwork (Courbariaux, 2016)

0

1

2

3

4

5

6

7

8

MATRIX MULT MNIST MLP MLP TEST ERROR

GPU KERNELS’EXECUTION TIMES

BASELINE KERNEL CUBLAS/THEANO XNOR KERNEL33

Page 34: Séminaire GreenAI 2

Gain sur le produit scalaire

Différence entre les produits scalaires classique et binaire

Produit scalaire classique: 𝑥. 𝑦 = σ𝑖𝑁 𝑥𝑖𝑦𝑖

Produit scalaire binaire: 𝑥. 𝑦 = 𝑁 − 2 ∗ ℎ𝑎𝑚𝑚𝑖𝑛𝑔 𝑥, 𝑦

= 𝑁 − 2 ∗ 𝑝𝑜𝑝𝑐𝑜𝑢𝑛𝑡 𝑥𝑜𝑟 𝑥, 𝑦

Pour 𝑥𝑖 ∈ −1,1 𝑒𝑡 𝑦𝑖 ∈ −1,1

34

Page 35: Séminaire GreenAI 2

Implémentation des opérateurs binaires

Tester sur le produit scalaire mais peu d’information sur

l’accés mémoire et la parallélisation

Utilisation de la librairie optimisé GMPY2

Comparaison avec le .dot() de Pytorch car les fonctions

bitwise_xor() et torch.sum() sont moins efficace

35

Graphe du temps de calcul d’un

produit scalaire en fonction de la taille

des vecteurs en seconde

Page 36: Séminaire GreenAI 2

Implémentation des opérateurs binaires

Implémentation de multiplications binaires de matrices

disponible

Larq de Tensorflow

Bmxnet de Microsoft

36

Page 37: Séminaire GreenAI 2

Perspectives

Packager les “class” implémentées pour leur reutilisation par le

personnel du Lmap.

Test des libraries larq et bmxnet

37

Page 38: Séminaire GreenAI 2

Conclusion

38