FR 3113971 A1 20220311 FR 2009081 A 20200908 Dispositif implémentant un filtre convolutionnel d’un réseau de neurone s L’invention concerne un dispositif (14) implémentant un filtre de convolution d’un réseau de neurones, le filtre de convolution transformant un tableau d’entrée codé en canaux d’entrée en un tableau de sortie codé en canaux de sortie en utilisant des noyaux de convolution, les tableaux d’entrée et de sortie étant implémentés respectivement par des couches de neurones (12) dont chaque neurone est un oscillateur en fréquence, le dispositif (14) comprenant des ensembles de chaînes synaptiques (20) formées chacune par des résonateurs (22) en série, chaque ensemble appliquant un noyau de convolution respectif, chaque résonateur (22) ayant une fréquence ajustée par une unité d’ajustement pour être égale à sa fréquence de résonance décalée d’un décalage en fréquence dépendant du coefficient de convolution du noyau de convolution à appliquer pour que l’ensemble applique le noyau de convolution à implémenter. Figure pour l'abrégé : figure 3 Dispositif implémentant un filtre convolutionnel d’un réseau de neurones La présente invention concerne un dispositif implémentant physiquement un filtre de convolution d’un réseau de neurones ainsi qu’un système implémentant physiquement un réseau de neurones convolutionnel comprenant un tel dispositif. Le développement de l’internet et des capteurs connectés conduit à permettre l’obtention de quantité considérable de données. Ce phénomène souvent désigné sous le terme de « big data » implique l’emploi d’ordinateurs pour pouvoir exploiter l’ensemble des données obtenues. Une telle exploitation peut être utilisée dans de multiples domaines, parmi lesquelles le traitement automatique de données, l’aide au diagnostic, l’analyse prédictive, les véhicules autonomes, la bioinformatique ou la surveillance. Pour mettre en œuvre une telle exploitation, il est connu d’utiliser des algorithmes d’apprentissage automatique faisant partie de programmes pouvant être exécutés sur des processeurs tels que les CPU ou les GPU. Un CPU est un processeur, le sigle CPU provenant du terme anglais « Central Processing Unit » signifiant littéralement unité centrale de traitement tandis qu’un GPU est un processeur graphique, le sigle GPU provenant du terme anglais « Graphic Processing Unit » signifiant littéralement unité graphique de traitement. Parmi les techniques de mise en œuvre d’apprentissage, l’emploi de réseaux de neurones formels, et plus spécifiquement de réseaux de neurones profonds, est de plus en plus répandu, ces structures étant considérées comme très prometteuses du fait de leurs performances pour de nombreuses tâches telles que la classification automatique de données et la reconnaissance de motifs. C’est en particulier le cas des réseaux de neurones convolutionnels. Un réseau de neurones est en général composé d'une succession de couches de neurones dont chacune prend ses entrées sur les sorties de la couche précédente. Plus précisément, chaque couche comprend des neurones prenant leurs entrées sur les sorties des neurones de la couche précédente. Chaque couche est reliée par une pluralité de synapses. Un poids synaptique est associé à chaque synapse. C’est un nombre réel, qui prend des valeurs positives comme négatives. Pour chaque couche, l’entrée d’un neurone est la somme pondérée des sorties des neurones de la couche précédente, la pondération étant faite par les poids synaptiques. Par définition, un réseau de neurones profond est un réseau comprenant plus de trois couches de neurones et un grand nombre de neurones par couche. Dans le cas d’un réseau de neurones convolutionnel, le réseau comporte, en outre, un grand nombre de couches propres à effectuer des opérations de convolution. Pour une implémentation d’un tel réseau dans un CPU ou un GPU, une problématique d’entonnoir de Von Neumann (également appelée Von Neumann bottleneck selon sa dénomination anglaise) apparaît du fait que l’implémentation d’un réseau de neurones profond implique d’utiliser à la fois la ou les mémoires et le processeur alors que ces derniers éléments sont séparés spatialement. Il en résulte un engorgement du bus de communication entre la ou les mémoires et le processeur. Il est donc souhaitable de développer des architectures matérielles dédiées, rapprochant mémoire et calcul, pour réaliser des réseaux de neurones rapides, faible consommation et capables d’apprendre en temps réel. Il est connu de réaliser des réseaux de neurones sur la base d’une technologie de type CMOS. Il est entendu par le sigle « CMOS », Oxyde métallique semi-conducteur complémentaire (acronyme provenant de l’expression anglaise « Complementary Metal-Oxide-Semiconductor »). Le sigle CMOS désigne aussi bien un procédé de fabrication qu’un composant obtenu par un tel procédé de fabrication. Il est également connu un réseau de neurones reposant sur des technologies de type optique. Plus précisément, trois propositions d’architecture font l’objet d’études spécifiques : les réseaux à neurones CMOS et synapses CMOS, l es réseaux à neurones optiques et synapses optiques et les réseaux à neurones CMOS et synapses memristives. Des synapses memristives sont des synapses utilisant des memristors. En électronique, le memristor (ou memristance) est un composant électronique passif. Le nom est un mot-valise formé à partir des deux mots anglais memory et resistor. Un memristor mémorise efficacement l’information car la valeur de sa résistance électrique change, de façon permanente, lorsqu’un courant est appliqué. Toutefois, selon chacune de ces technologies, chaque neurone occupe plusieurs dizaines de micromètres de côté. Pour les technologies CMOS et optique, chaque synapse occupe également plusieurs dizaines de micromètres de côté. Il en résulte que, sur une surface limitée correspondant par exemple à une puce électronique, le nombre de neurones et de synapses qui peuvent être intégrés est limité, ce qui résulte en une diminution des performances du réseau de neurones. Aucune des implémentations physiques précitées des réseaux de neurones ne sont satisfaisantes pour l’implémentation physique d’un réseau de neurones convolutionnel pour lequel les problèmes précédents sont encore plus gênants. Il existe donc un besoin pour un circuit implémentant physiquement un réseau de neurones convolutionnel ou une partie d’un tel réseau qui présentent des performances améliorées. A cet effet, la présente description propose un dispositif implémentant physiquement un filtre de convolution d’un réseau de neurones, le filtre de convolution prenant en entrée un tableau d’entrée codé selon au moins un canal d’entrée pour obtenir en sortie un tableau de sortie codé selon au moins un canal de sortie, le tableau d’entrée étant un ensemble de cases d’entrée agencées selon une matrice d’entrée, chaque case présentant une valeur propre à chaque canal d’entrée, une première couche de neurones implémentant physiquement le tableau d’entrée, chaque neurone de la première couche de neurones étant un oscillateur, notamment un oscillateur radiofréquence, oscillant à une fréquence propre, chaque neurone de la première couche de neurones correspondant de manière biunivoque à la valeur d’une case d’un canal d’entrée, le tableau de sortie étant un ensemble de cases de sortie agencées selon une matrice de sortie, chaque case présentant une valeur propre à chaque canal de sortie, une deuxième couche de neurones implémentant physiquement le tableau de sortie, chaque neurone de la deuxième couche de neurones étant un oscillateur, notamment un oscillateur radiofréquence, oscillant à une fréquence propre, chaque neurone de la deuxième couche de neurones correspondant de manière biunivoque à la valeur d’une case d’un canal de sortie, le filtre de convolution étant un ensemble de noyaux de convolution, chaque noyau de convolution étant spécifique d’un canal de sortie, chaque noyau de convolution délimitant un sous-ensemble matriciel présentant une taille strictement inférieure à la taille de la matrice d’entrée, le sous-ensemble matriciel d’un noyau de convolution comportant un ensemble de coefficients de convolution, l’application d’un noyau de convolution pour le ou chaque canal d’entrée à un sous-ensemble matriciel de la matrice d’entrée dont le premier élément est une case d’entrée ayant des premières coordonnées donnant la valeur de la case de sortie ayant les premières coordonnées pour la matrice de sortie selon le canal de sortie spécifique au noyau de convolution appliqué, le dispositif comprenant des ensembles de chaînes synaptiques, chaque chaîne synaptique comportant des synapses, chaque synapse étant un résonateur, notamment un résonateur spintronique, les résonateurs étant en série, chaque résonateur ayant une fréquence de résonance ajustable, chaque ensemble de chaînes synaptiques étant propre à appliquer un noyau de convolution respectif, chaque chaîne synaptique d’un même ensemble de chaînes synaptiques rassemblant les résonateurs ayant pour fréquence de résonance la fréquence des neurones implémentant les valeurs des cases du sous-ensemble matriciel de la matrice d’entrée associé au noyau de convolution de l’ensemble de chaînes synaptiques et dont le premier élément est une case d’entrée ayant des coordonnées respectives, chaque résonateur ayant une fréquence ajustée par une unité d’ajustement de fréquences pour que la fréquence du résonateur soit égale à la fréquence de résonance à laquelle est ajouté un décalage en fréquence dépendant du coefficient de convolution du noyau de convolution à appliquer au neurone, le nombre de chaînes synaptiques d’un même ensemble étant égal au nombre de cases du tableau de sortie que le noyau de convolution permet d’obtenir par application sur le tableau d’entrée. Autrement formulé, le dispositif implémente physiquement un filtre de convolution d’un réseau de neurones, le filtre de convolution transformant un tableau d’entrée codé selon au moins un canal d’entrée pour obtenir en sortie un tableau de sortie codé selon au moins un canal de sortie en utilisant un ensemble de noyaux de convolution, le tableau d’entrée et le tableau de sortie étant implémentés physiquement respectivement par des neurones respectifs de la première couche et des neurones d’une deuxième couche, chaque neurone étant un oscillateur oscillant à une fréquence propre, le dispositif comprenant des ensembles de chaînes synaptiques formées chacune par des résonateurs en série, chaque ensemble de chaînes synaptiques appliquant un noyau de convolution respectif, chaque résonateur ayant une fréquence ajustée par une unité d’ajustement de fréquences pour que la fréquence du résonateur soit égale à la fréquence de résonance à laquelle est ajouté un décalage en fréquence dépendant du coefficient de convolution du noyau de convolution à appliquer au neurone pour que l’ensemble de chaînes synaptiques applique le noyau de convolution à implémenter. Suivant des modes de réalisation particulier, le dispositif comprend une ou plusieurs des caractéristiques suivantes lorsque cela est techniquement possible : - l’unité d’ajustement de fréquences est la même pour les résonateurs d’un même ensemble de chaînes synaptiques pour lequel le coefficient de convolution à appliquer est identique. - il est défini pour chaque chaîne synaptique une entrée et une sortie, le dispositif comportant au moins un amplificateur positionné soit à l’entrée soit à la sortie. - chaque unité d’ajustement de fréquences est choisie dans la liste constituée d’un applicateur de courant continu, un applicateur d’impulsions de courant et un applicateur de tension. - les résonateurs sont agencés selon une matrice dont les colonnes sont les résonateurs ayant le même coefficient de convolution à appliquer. - le dispositif comporte un sommateur des signaux issus des neurones de la première couche de neurones. - les résonateurs sont reliés à au plus deux neurones de la première couche de neurones. - les chaînes synaptiques sont parallèles à une ligne selon laquelle sont agencés les neurones de la première couche de neurones. - chaque résonateur est relié à un unique neurone de la première couche de neurones. La présente description propose également un système implémentant physiquement un réseau de neurones convolutionnel comportant un dispositif tel que précédemment décrit. D’autres caractéristiques et avantages de l’invention apparaîtront à la lecture de la description qui suit de modes de réalisation de l’invention, donnée à titre d’exemple uniquement et en référence aux dessins qui sont : - , une représentation schématique d’un système implémentant physiquement un réseau de neurones convolutionnel ; - [Fig 2] [Fig 2], une représentation schématique de l’action d’un filtre de convolution ; - , une représentation schématique d’un exemple de dispositif faisant partie du système de la , le dispositif implémentant physiquement le filtre de convolution de la [Fig 2] ; - , une représentation schématique d’un autre exemple de dispositif implémentant physiquement un filtre de convolution, et - , une représentation schématique d’encore un autre exemple de dispositif implémentant physiquement un filtre de convolution. Un système 10 implémentant physiquement un réseau de neurones est représenté sur la . Le système 10 implémente physiquement un réseau de neurones comportant un ensemble de couches de neurones et des interconnexions reliant une couche de neurones à une autre couche de neurones. Cela signifie que le système 10 comporte des circuits 12 implémentant des couches et des dispositifs 14 implémentant des interconnexions. Chaque couche 12 de neurones est un ensemble d’au moins deux neurones 16. Par définition, en biologie, un neurone, ou une cellule nerveuse, est une cellule excitable constituant l'unité fonctionnelle de base du système nerveux. Les neurones assurent la transmission d'un signal bioélectrique appelé influx nerveux. Les neurones ont deux propriétés physiologiques : l'excitabilité, c'est-à-dire la capacité de répondre aux stimulations et de convertir celles-ci en impulsions nerveuses, et la conductivité, c'est-à-dire la capacité de transmettre les impulsions. Dans les réseaux de neurones formels, le comportement des neurones biologiques est imité par une fonction mathématique qui présente la propriété d’être non-linéaire (pour pouvoir transformer l’entrée de manière utile) et préférentiellement d’être dérivable (pour permettre l’apprentissage par rétropropagation du gradient). Dans le cadre de cette demande, un neurone 16 est un composant réalisant une fonction équivalente. Les couches de neurones 12 sont ordonnées, de sorte qu’il est possible de définir un indice pour chaque couche de neurones 12. Dans la suite de la suite de la présente demande, les termes « amont » et « aval » sont définis par rapport au sens croissant de cet indice. Dans l’exemple décrit, chaque neurone 16 est un oscillateur. En outre, chaque oscillateur est un oscillateur dont la fréquence est comprise entre 1 MégaHertz (MHz) jusqu’à plusieurs TéraHertz (THz). Par la suite on utilisera le terme « radiofréquence » pour se référer à cette gamme de fréquence. Un oscillateur est un dispositif propre à générer des oscillations présentant une amplitude contrôlée et une fréquence fixe ou contrôlée sur une ou plusieurs sortie(s). Un oscillateur étant susceptible de présenter plusieurs fréquences d’oscillations, par définition, la fréquence d’oscillation d’un neurone 16 est la fréquence de l’oscillation présentant l’amplitude la plus importante (l’amplitude étant définie en crête à crête). Dans le cas de figure illustré, les neurones 16 présentent une fréquence d’oscillation respective. Cela signifie que les fréquences d’oscillation de l’ensemble des oscillateurs d’une même couche sont distinctes deux à deux. Selon les implémentations, le signal en sortie d’un neurone 16 est un courant électrique radiofréquence, un champ électromagnétique radiofréquence ou une onde de spin. Les ondes de spin sont des fluctuations de l’aimantation des matériaux ferromagnétiques autour de la position d’équilibre de l’aimantation. L’onde de spin peut être localisée ou se propager. Un matériau ferromagnétique possède une aimantation spontanée, contrairement aux matériaux non-magnétiques. En physique, l’aimantation est une grandeur vectorielle qui caractérise à l'échelle macroscopique le comportement magnétique d'un échantillon de matière. L’aimantation a comme origine le moment magnétique orbital et le moment magnétique de spin des électrons ou des atomes. Selon une première implémentation, chaque neurone 16 est un oscillateur CMOS. La création d’un tel oscillateur repose sur la transposition de montages électroniques existants, tel l’oscillateur Colpitts, l’oscillateur Clapp, l’oscillateur à déphasage, l’oscillateur Pierce, l’oscillateur Hartley, l’oscillateur à variables d'état ou l’oscillateur à anneau (plus souvent désigné sous l’appellation anglaise de « ring oscillator »). Cela permet d’obtenir un oscillateur CMOS présentant un signal d’oscillation avec une fréquence fixe et une amplitude contrôlable. Il en résulte une forte puissance émise, et un faible bruit. Selon une deuxième implémentation, les oscillateurs sont réalisés avec des signaux lasers, et des éléments ayant une transmission optique non-linéaire, ce qui aurait pour avantage la grande rapidité de l’information (vitesse de la lumière), mais aussi pour désavantage la taille des composants, et la forte consommation énergétique des lasers. Selon une troisième implémentation qui est celle de l’exemple décrit, chaque neurone 16 est un oscillateur spintronique. Une telle implémentation permet de diminuer l’encombrement de la première implémentation. Les oscillateurs spintroniques permettent d’obtenir des fréquences d’oscillation sur une large gamme de fréquences, entre 1 MégaHertz (MHz) et plusieurs TéraHertz (THz), notamment lorsque des matériaux antiferromagnétiques sont utilisés. L'antiferromagnétisme est une propriété de certains milieux magnétiques. Contrairement aux matériaux ferromagnétiques, dans les matériaux antiferromagnétiques, l’interaction d’échange entre les atomes voisins conduit à un alignement antiparallèle des moments magnétiques atomiques. L'aimantation totale du matériau est alors nulle. Tout comme les ferromagnétiques, ces matériaux deviennent paramagnétiques au-dessus d’une température de transition appelée température de Néel. L’antiferromagnétisme est distinct du ferromagnétisme qui désigne la capacité de certains corps de s'aimanter sous l'effet d'un champ magnétique extérieur et de garder une partie de cette aimantation Par ailleurs, la spintronique, l’électronique de spin ou la magnétoélectronique, est une technique qui exploite la propriété quantique du spin des électrons dans le but de stocker des informations ou d’effectuer des opérations de calcul sur ces informations. Par extension, un composant spintronique est un composant qui exploite la propriété quantique du spin des électrons dans le but de stocker ou de traiter des informations. Selon l’exemple proposé, les oscillateurs spintroniques génèrent des signaux harmoniques. Un neurone 16 comporte, par exemple, un pilier de diamètre caractéristique compris entre 3 nanomètres (nm) et 1 micromètre (µm) et des moyens d’injection d’un courant d’alimentation à travers le pilier. Le pilier comporte un motif constitué de plusieurs couches, superposées le long d’une direction d’empilement des couches, à savoir d’une première couche en un matériau ferromagnétique, d’une couche intermédiaire en un matériau non magnétique, et d’une deuxième couche en un matériau ferromagnétique. A chacune de ses extrémités, le pilier comporte respectivement des couches inférieures et supérieures qui sont disposées de part et d’autre du motif et constituent des contacts permettant l’injection d’un courant d’alimentation à travers les couches. Les moyens propres à permettre l’injection d’un courant d’alimentation à travers le pilier sont une source de courant pouvant délivrer soit un courant continu, soit un courant alternatif réglable en intensité et en fréquence, soit les deux et des électrodes. De tels oscillateurs ont pour désavantage leur niveau de bruit relativement élevé, mais pour avantage une faible consommation d’énergie et une petite taille. En résumé pour le présent exemple, il est utilisé des oscillateurs spintroniques, tels que des oscillateurs à transfert dont l’empilement est des jonctions tunnels magnétiques. Le courant continu traversant la jonction permet de faire osciller l’aimantation de la couche ferromagnétique supérieure, et donc de faire osciller la résistance de la jonction par effet de magnétorésistance tunnel. Un courant continu permet donc de générer une tension alternative. Les interconnexions effectuent chacun une ou plusieurs opérations spécifiques. En l’espèce, le réseau de neurones est un réseau de neurones convolutionnel. Un tel réseau de neurones est propre à mettre en œuvre une pluralité de filtres de convolution. Le nombre de filtres utilisés augmentant avec la profondeur du réseau, le nombre de filtres est parfois très important. Un exemple de fonctionnement d’un tel filtre de convolution FC est illustré par la figure 2. Le filtre de convolution FC prend en entrée un tableau d’entrée IE codé selon au moins un canal d’entrée pour obtenir en sortie un tableau de sortie IS codé selon au moins un canal de sortie. Le tableau d’entrée IE est un ensemble de cases d’entrée agencées selon une matrice d’entrée, chaque case présentant une valeur propre à chaque canal d’entrée. Dans la notation « IE », il est utilisé la lettre « I » pour désigner le tableau du fait que tout tableau correspond à une image, c’est-à-dire un ensemble de pixels. Un exemple spécifique de tel tableau d’entrée IE est une image en couleurs. Une image en couleurs est un tableau d’entrée IE codée selon les valeurs du pixel en trois couleurs, typiquement selon un codage RGB. Dans un tel exemple, le tableau d’entrée IE est un premier ensemble de cases d’entrée agencées selon une matrice d’entrée ayant pour valeur la composante rouge de l’image en couleurs, un deuxième ensemble de cases d’entrée agencées également selon la matrice d’entrée ayant pour valeur la composante verte de l’image en couleurs et un troisième ensemble de cases agencées également selon la matrice d’entrée et ayant pour valeur la composante bleue de l’image en couleurs. Dans la représentation de la [Fig 2], la matrice d’entrée est un ensemble de lignes repérées chacune par un indice i et par un ensemble de colonnes repérées par un indice j. L’indice i est un nombre entier dont la valeur est comprise entre 1 et N H , N H étant le nombre total de lignes de la matrice d’entrée. L’indice j est un nombre entier dont la valeur est comprise entre 1 et N W, N W étant le nombre total de colonnes de la matrice d’entrée. Ainsi, chaque élément de la matrice d’entrée est repéré par un couple (i, j). En outre, comme chaque élément de la matrice d’entrée a une valeur différente selon le canal d’entrée considéré, chaque élément du tableau d’entrée IE est repéré, non simplement par le couple (i, j), mais bien par un triplet (i, j, c), c étant l’indice de canal qui est un entier variant entre 1 et N C le nombre de canaux du tableau d’entrée IE. Pour la suite, un élément de la matrice d’entrée sera ainsi noté x i,j,c et un élément du tableau d’entrée IE sera noté x i,j . Similairement, il est possible de repérer chaque élément de la matrice de sortie par un triplet (a, b, m), d’où la notation z a,b ,m pour un élément de la matrice de sortie et z a,b pour un élément de l’image de sortie IS. L’indice a est un nombre entier dont la valeur est comprise entre 1 et h, h étant le nombre total de lignes de la matrice de sortie. L’indice b est un nombre entier dont la valeur est comprise entre 1 et l, l étant le nombre total de colonnes de la matrice de sortie. L’indice m est l’indice de canal qui est un entier variant entre 1 et N m le nombre de canaux du tableau de sortie IS. Le filtre de convolution FC est un ensemble de noyaux de convolution NC, l’ensemble de noyaux de convolution NC appliqué au tableau d’entrée IE permettant d’obtenir l’image de sortie IS. Chaque noyau de convolution NC est spécifique d’un canal de sortie. L’exemple de noyau de convolution NC représenté sur la [Fig 2] est spécifique au canal de sortie m. Chaque noyau de convolution NC délimite un sous-ensemble présentant une taille strictement inférieure à la taille de la matrice d’entrée. Cela signifie que, dans cet exemple, le nombre total de lignes du sous-ensemble matriciel est strictement inférieur au nombre total N H de lignes de la matrice d’entrée et que le nombre total de colonnes du sous-ensemble matriciel est strictement inférieur au nombre total N W de colonnes de la matrice d’entrée. Toutefois, il est possible d’envisager des cas où le nombre total de lignes du sous-ensemble matriciel est égal au nombre total N H de lignes de la matrice d’entrée et/ou que le nombre total de colonnes du sous-ensemble matriciel est égal au nombre total N W de colonnes de la matrice d’entrée. C’est notamment pertinent lorsque des convolutions unidimensionnelles sont appliquées successivement, par exemple une convolution horizontale et une convolution verticale. En l’espèce, le noyau de convolution NC comporte trois lignes et trois colonnes, ce qui signifie que le noyau de convolution NC est carré dans le cas particulier de la [Fig 2]. Le sous-ensemble matriciel du noyau de convolution NC comporte un ensemble de coefficients de convolution. Dans la représentation de la [Fig 2], le noyau de convolution NC est un ensemble de lignes repérées chacune par un indice p et un ensemble de colonnes repérées par un indice q. L’indice p est un nombre entier dont la valeur est comprise entre 1 et n H , n H étant le nombre total de lignes du noyau de convolution NC. L’indice q est un nombre entier dont la valeur est comprise entre 1 et n W, n W étant le nombre total de colonnes du noyau de convolution NC. Dans le cas représenté, n H = n W = 3. Par ailleurs, la valeur du coefficient de convolution dépend également du canal d’entrée et du canal de sortie considéré. Cela signifie qu’un élément du noyau de convolution NC est repéré non plus par un triplet comme le cas des images d’entrée et de sortie mais par un quadruplet (p, q, c, m). Un élément du noyau de convolution NC sera ainsi noté w p,q,c,m ou alternativement selon les notations de la . L’application du noyau de convolution NC pour le ou chaque canal d’entrée à un sous-ensemble matriciel de la matrice d’entrée dont un premier élément est une case d’entrée ayant des premières coordonnées donne la valeur d’une case de sortie ayant les premières coordonnées pour la matrice de sortie selon le canal de sortie spécifique au noyau de convolution NC appliqué. Plus précisément, cela signifie que le noyau de convolution NC est appliqué à chaque élément de la matrice d’entrée compris spatialement dans le sous-ensemble matriciel positionné à la case d’entrée avec les premières coordonnées et ce, sur tous les canaux possibles. En l’espèce, cela signifie que le premier élément du tableau de sortie IS, à savoir z 1,1,m est le résultat de l’application du noyau de convolution NC correspondant au canal m aux neufs éléments x 1,1 , x 1,2 , x 1,3 , x 2,1 , x 2,2 , x 2,3 , x 3,1 , x 3,2 et x 3,3 du tableau d’entrée IE. Plus précisément, cela implique que le premier élément du tableau de sortie IS z 1,1,m est une somme pondérée de 27 termes correspondants à la valeur des neufs éléments précités de l’image d’entrée IE pour le canal 1, le canal 2 et le canal 3. La pondération est faite à l’aide des coefficients de convolution w p,q,c,m du noyau de convolution NC. Mathématiquement, cela s’écrit : Les considérations précédentes montrent que le premier terme x 1,1 de la somme a les mêmes coordonnées que l’élément z 1,1 . La généralisation de la formule précédente donne la formule suivante : En toute généralité, un poids de biais pourrait également être ajouté à l’ensemble de la somme. Un tel poids de biais est spécifique du canal de sortie considéré et serait notée PB m . Ce poids de biais est négligé dans la suite de l’exposé et serait aisément implémenté en ajoutant une tension avec un composant CMOS avant l’entrée de chaque neurone 16. La formulation précédente montre bien que le coefficient de convolution est à interpréter comme un poids synaptique. Les dispositifs 14 des figures 3 à 5 présentent des implémentations physiques d’un tel filtre de convolution FC. Les dispositifs 14 des figures 3 à 5 sont des dispositifs implémentant physiquement une interconnexion de la . Chacun des dispositifs 14 correspond à une implémentation fréquentielle des relations précédentes. Les dispositifs 14 sont une interconnexion entre une première couche de neurones 12 et une deuxième couche de neurones 12. Chaque couche comporte un ensemble de neurones 16 agencés selon une ligne. Il est défini une ligne comme verticale ou selon une colonne comme étant la ligne selon laquelle sont agencés les neurones 16 de la première couche 12. Comme les fréquences d’oscillation des neurones 16 sont destinées à représenter les cases du tableau d’entrée IE, il est possible pour le cas illustré d’écrire les fréquences des oscillateurs comme, dans l’ordre, f 1,1,1 , f 1,2,1 , … , f 1,Nw,1 , f 2,1,2 , … , f Nh,Nw,1 , f 2,1,2 , …, f Nh,Nw,Nc . Dans chacun des cas, le dispositif 14 comprend des ensembles de chaînes synaptiques 20 reliées à des circuits de conversion tension-courant 18 ainsi que des unités d’ajustement de fréquences. Une chaîne synaptique 20 est un ensemble de synapses 22 reliées en série par au moins une ligne de transmission. Chaque ligne de transmission ou ligne de champs est réalisée par une piste métallique placée à une distance raisonnablement proche au-dessus ou au-dessous des synapses 22 mais isolée électriquement des synapses 22. Il est à noter que, pour le mode de réalisation correspondant à la , la transmission du signal peut être faite par ligne de champs, mais aussi électriquement avec des lignes classiques. Dans ce dernier cas, les lignes de transmission ne sont pas isolées des synapses 22. La même implémentation est possible pour les lignes de champs servant à modifier les fréquences des synapses 22 qui seront décrites ultérieurement en référence aux unités d’ajustement de fréquences. En biologie, la synapse désigne une zone de contact fonctionnelle qui s'établit entre deux neurones 16. Suivant son comportement, la synapse biologique peut exciter ou encore inhiber le neurone aval en réponse au neurone amont. Dans les réseaux de neurones formels, un poids synaptique positif correspond à une synapse excitatrice tandis qu’un poids synaptique négatif correspond à une synapse inhibitrice. Les réseaux de neurones biologiques apprennent par la modification des transmissions synaptiques dans l’ensemble réseau. De même, les réseaux de neurones formels peuvent être entraînés à réaliser des tâches en modifiant les poids synaptiques selon une règle d’apprentissage. Une des règles d’apprentissage les plus performantes aujourd’hui pour l’entrainement des réseaux profonds est la rétro-propagation du gradient (backpropagation en anglais). Dans le cadre de cette demande, une synapse 22 est un composant réalisant une fonction équivalente à un poids synaptique de valeur modifiable. Par ailleurs, dans la suite, nous appellerons « chaîne synaptique» ou « chaîne 20 » un ensemble de synapses 22 reliées en chaîne, dont la fonction est de connecter la totalité ou un sous-ensemble de neurones 16 de la couche amont à la couche aval. Plus précisément, la sortie d’une chaîne 20 synaptique est proportionnelle à la somme pondérée des sorties des neurones 16 de la couche précédente qui sont connectés en entrée de la chaîne 20, la pondération étant faite par les poids synaptiques des synapses 22 qui constituent la chaîne 20. Chaque synapse 22 est un résonateur spintronique. En variante, chaque synapse 22 est réalisée par des résonateurs optiques si les neurones 16 sont des signaux optiques. Un résonateur 22 est un composant électrique présentant une fréquence de résonance. Plus précisément la réponse d’un résonateur 22 à un signal radiofréquence est plus élevée dans une certaine gamme autour de la fréquence de résonance. Un résonateur spintronique 22 est un résonateur magnéto-résistif. Plus précisément, un résonateur spintronique 22 est un composant électrique comportant une ou plusieurs couches ferromagnétiques et dont l’aimantation de l’une au moins des couches peut être mise en précession résonante par un signal radiofréquence. La précession de l’aimantation entraîne une variation de la résistance du résonateur 22 par effet magnéto-résistif. La fréquence de résonance du résonateur 22 dépend des dimensions de la couche ferromagnétique, du champ magnétique qui est appliqué sur la couche ferromagnétique et du ou des matériaux ferromagnétiques qui forme(nt) la couche ferromagnétique. En outre, chaque résonateur spintronique 22 présente une fréquence de résonance ajustable. Ainsi, selon un premier exemple, les résonateurs 22 sont des jonctions tunnels magnétiques (à savoir un empilement ferromagnétique / isolant / ferromagnétique). Le courant ou le champ magnétique permet de faire résonner la couche magnétique supérieure, et donc de faire osciller la résistance grâce à l’effet de magnétorésistance tunnel. Selon un deuxième exemple, les résonateurs 22 sont des vannes de spin (à savoir un empilement ferromagnétique / métal / ferromagnétique). Selon un troisième exemple, les résonateurs 22 sont de simples lignes de métaux ferromagnétiques Le champ d’Oersted créé alors par le courant traversant la ligne magnétique permet de la faire entrer en résonance. La résistance oscille grâce à l’effet d’anisotropie de magnétorésistance (effet plus faible que celui de magnétorésistance géante). Selon un quatrième exemple, les résonateurs 22 sont des jonctions avec un empilement Métal lourd / Ferromagnétique / Isolant avec une ligne de champs au-dessus. Un métal lourd présentant un fort effet Hall de spin inverse. En l’espèce, le métal lourd est un alliage comprenant un ou plusieurs des éléments parmi le groupe constitué de Pt, W, Pd, Au, Ir, Ag et Bi. La ligne de champs crée un champ magnétique radiofréquence qui fait résonner la partie ferromagnétique. La précession de l’aimantation induit un courant de spin dans le partie métal lourd (métaux à fort couplage spin-orbite, tel que Pt, W, Pd…), et ce courant de spin est converti en tension grâce à l’effet Hall de spin inverse. Dans l’exemple où les résonateurs 22 sont des jonctions tunnels magnétiques, la tension aux bornes d’un résonateur 22 en fonction du signal reçu s’écrit selon la formule suivante : Où : est la puissance du signal reçu, est la fréquence du signal reçu, est la fréquence de résonance du résonateur 22, est le coefficient d’amortissement magnétique du résonateur 22, et est un coefficient qui dépend notamment de la résistance du résonateur 22, de la magnétorésistance du résonateur 22 et de l’adaptation d’impédance du résonateur 22. Chaque ensemble de chaînes 20 est propre à appliquer un noyau de convolution NC respectif. Le nombre de chaînes 20 d’un même ensemble étant égal au nombre de cases du tableau de sortie IS que le noyau de convolution NC permet d’obtenir par application sur le tableau d’entrée IE. Chaque chaîne 20 d’un même ensemble de chaînes 20 rassemble les résonateurs spintroniques 22 ayant une fréquence de résonance égale à la fréquence des neurones 16 implémentant les valeurs des pixels du sous-ensemble matriciel de la matrice d’entrée associé au noyau de convolution NC de l’ensemble de chaînes 20 et dont le premier élément est un pixel d’entrée ayant des coordonnées respectives. Par l’égalité dans ce contexte, il est entendu que la fréquence de résonance du résonateur 22 est proche de la fréquence des neurones 16, ce qui veut dire que la différence de fréquence entre la fréquence d’un résonateur 22 et de son neurone 16 associé est de valeur absolue inférieure au terme . Dans l’exemple proposé, cela signifie que la première chaîne 20 comporte les 27 résonateurs spintroniques 22 associés à la valeur des neufs éléments précités x 1,1 , x 1,2, x 1,3 , x 2,1 , x 2,2 , x 2,3 , x 3,1 , x 3,2 et x 3,3 du tableau d’entrée IE pour le canal 1, le canal 2 et le canal 3. Par le terme « associé » dans ce contexte, il est entendu que chaque résonateur 22 présente une fréquence respective égale aux (« proche » parmi les) fréquences des neurones 16 codant la valeur des éléments précités. En fonctionnement, chaque résonateur spintronique 22 présente une fréquence ajustée par une unité d’ajustement de fréquences U pour que la fréquence du résonateur 22 soit égale à la fréquence de résonance du résonateur à laquelle est ajouté un décalage en fréquence dépendant du coefficient de convolution du noyau de convolution NC à appliquer à l’oscillateur associé au réseau spintronique. Le décalage en fréquence ajouté noté est tel que la tension aux bornes d’un résonateur 22 s’écrit : Donc afin que Le décalage en fréquence a pour valeur . Cela est indiqué dans la pour chaque résonateur 22 par un rectangle comportant une valeur correspondant à la fréquence de résonance et une valeur correspondant au décalage en fréquence à appliquer. Plus précisément, dans l’exemple proposé en supposant que le canal de sortie concerné est le canal m, la première chaîne 20 comporte successivement un premier résonateur 22 à la fréquence (f 1,1,1 + δ 1,1,1,m ), un deuxième résonateur 22 à la fréquence (f 1,2,1 + δ 1, 2 ,1,m ), …., un neuvième résonateur 22 à la fréquence (f 3,3,1 + δ 3,3,1,m ), un dixième résonateur 22 à la fréquence (f 1,1,2 + δ 1,1,2,m ), un onzième résonateur 22 à la fréquence (f 1,2,2 + δ 1, 2 ,2,m ), …., un dix-huitième résonateur 22 à la fréquence (f 3,3,2 + δ 3,3,2,m ), un dix-neuvième résonateur 22 à la fréquence (f 1,1,3 + δ 1,1,3,m ) un vingtième résonateur 22 à la fréquence (f 1,2,3 + δ 1,2,3,m ), …. et un vingt-septième résonateur 22 à la fréquence (f 3,3,3 + δ 3,3,3,m ). Similairement, la deuxième chaîne 20 comporte successivement un premier résonateur 22 à la fréquence (f 1,2,1 + δ 1,1,1,m ), un deuxième résonateur 22 à la fréquence (f 1,3,1 + δ 1, 2 ,1,m ), …., un neuvième résonateur 22 à la fréquence (f 3,4,1 + δ 3,3,1,m ), un dixième résonateur 22 à la fréquence (f 1, 2 ,2 + δ 1,1 ,2,m ), un onzième résonateur 22 à la fréquence (f 1,3 ,2 + δ 1, 2 ,2,m ), …., un dix-huitième résonateur 22 à la fréquence (f 3 ,4 ,2 + δ 3 ,3 ,2,m ), un dix-neuvième résonateur 22 à la fréquence (f 1,2 ,3 + δ 1,1,3,m ) un vingtième résonateur 22 à la fréquence (f 1,3 ,3 + δ 1,2,3,m ), …. et un vingt-septième résonateur 22 à la fréquence (f 3 ,4 ,3 + δ 3,3,3,m ). Et ainsi de suite pour parcourir l’ensemble des valeurs possibles pour les indices a et b. La (h+l)-ième chaîne 20 comporte ainsi successivement un premier résonateur 22 à la fréquence (f Na,Nb,1 + δ 1,1,1,m ), un deuxième résonateur 22 à la fréquence (f Na,Nb+1,1 + δ 1, 2 ,1,m ), …., un neuvième résonateur 22 à la fréquence (f Na+2,Nb+2,1 + δ 3,3,1,m ), un dixième résonateur 22 à la fréquence (f Na,Nb,2 + δ 1,1,2,m ), un onzième résonateur 22 à la fréquence (f Na,Nb+1,2 + δ 1, 2 ,2,m ), …., un dix-huitième résonateur 22 à la fréquence (f Na+2,Nb+2,2 + δ 3,3,2,m ), un dix-neuvième résonateur 22 à la fréquence (f Na,Nb,3 + δ 1,1,3,m ) un vingtième résonateur 22 à la fréquence (f Na,Nb+1,3 + δ 1,2,3,m ), …. et un vingt-septième résonateur 22 à la fréquence (f Na+2,Nb+2,3 + δ 3,3,3,m ). Cela donne un ensemble de h*l chaînes 20. Selon l’exemple de la , une unité d’ajustement de fréquences U est un applicateur de courant continu. Dans l’exemple de la , le même décalage en fréquence est appliqué à chacun des i-ièmes résonateurs 22. Dans un tel cas, l’unité d’ajustement de fréquences U est la même pour les résonateurs spintroniques 22 d’un même ensemble de chaînes 20 pour lesquels le coefficient de convolution à appliquer est identique. Cela signifie que c’est la même unité d’ajustement de fréquences U pour chacun des i-ièmes résonateurs 22 de l’ensemble décrit à la . En outre, en agençant les résonateurs 22 selon une matrice dont les colonnes sont les i-ièmes résonateurs 22, l’unité d’ajustement de fréquences U est propre à appliquer le même décalage en fréquence sur une ligne de champ rectiligne s’étendant selon une colonne, c’est-à-dire perpendiculairement à la direction selon laquelle s’étend la chaîne 20. Dans l’exemple de la , le dispositif 14 comprend, en outre, un sommateur 23 et un amplificateur 24 placés entre la première couche de neurones 12 et l’entrée des chaînes 20. Un sommateur 23 est un circuit permettant de sommer sur une même voie de transmission différents types de signaux. En l’espèce, le sommateur 23 est propre à effectuer une somme des signaux issus de chacun des neurones 16 de la première couche de neurones 12. Le sommateur 23 est, par exemple, réalisé par une technologie CMOS. Un amplificateur 24 est un système électronique augmentant la tension et/ou l’intensité d’un signal électrique. Ici, l’amplificateur 24 est propre à amplifier le signal sommé. A titre d’exemple, l’amplificateur 24 est réalisé à l’aide d’une technologie CMOS. Chaque circuit de conversion 18 joue le rôle d’un convertisseur de tension continue en courant continu. Selon l’exemple proposé, le circuit de conversion 18 comprend des diodes. Une diode est connectée à la sortie de chaque chaîne 20. La diode est, par exemple, une diode de type CMOS. La diode permet de transformer le signal radiofréquence incident en signal continu. Tout autre dispositif permettant d’effectuer la même fonction est envisageable. A titre d’exemple, au lieu d’une diode, un détecteur de puissance radiofréquence est utilisé. Le dispositif 14 comporte également un amplificateur 26 en sortie, c’est-à-dire un amplificateur 26 entre le circuit de conversion 18 et le neurone 16 correspondant de la deuxième couche de neurones 12. Le fonctionnement du dispositif 14 de la est maintenant décrit. Le signal des neurones 16 est sommé par le sommateur 23 pour obtenir un signal sommé. L’amplificateur 24 amplifie le signal sommé. Le signal ainsi amplifié est envoyé en entrée de chaque chaîne 20. En parallèle, les unités d’ajustement de fréquences appliquent les décalages en fréquence correspondants aux coefficients de convolution à chaque résonateur 22. Plus précisément, dans chaque ensemble de chaîne 20, la première unité d’ajustement de fréquences U1 ajoute un premier décalage en fréquence (premier poids), la deuxième unité d’ajustement de fréquences U2 ajoute un deuxième décalage en fréquence (deuxième poids), la troisième unité d’ajustement de fréquences U3 ajoute un troisième décalage en fréquence (troisième poids)… et ainsi de suite jusqu’à la vingt-septième unité d’ajustement de fréquences U27 qui ajoute un vingt-septième décalage en fréquence (vingt-septième poids). Pour cela, chaque unité d’ajustement de fréquences U étant un applicateur de courant continu, un courant continu est appliqué et passe par une ligne de champs. Un champ magnétique est ainsi créé. Le champ magnétique agit alors sur l’aimantation d’une couche du résonateur 22. La fréquence de résonance d’un matériau magnétique évolue, en effet, de manière linéaire avec le champ magnétique appliqué. Puis, une interaction entre le signal sommé et chaque résonateur 22 de la chaîne 20 a lieu. Le signal obtenu après interaction est ensuite redressé par le résonateur 22. Il est ainsi obtenu la valeur d’une case du tableau de sortie IS. Autrement formulé, chaque chaîne 20 synaptique calcule la valeur d’une case du tableau de sortie IS par interaction entre le signal sommé et chaque résonateur 22 de la chaîne 20. Un ensemble de chaînes 20 calcule ainsi la valeur de l’ensemble des cases du tableau de sortie IS pour un canal. Chaque ensemble de chaînes 20 calcule un tableau de sortie IS pour un canal respectif. Ce principe illustré pour le filtre de convolution FC de la [Fig 2] peut s’appliquer pour un cas général. De ce fait, c’est dans ce cas de figure que la a été réalisée avec des nombres quelconques pour les indices. Le dispositif 14 de la réalise ainsi physiquement un filtre de convolution FC sur un tableau d’entrée IE implémenté par la première couche de neurones 12 et un tableau de sortie IS implémenté par la deuxième couche de neurones 12. Autrement formulé, cela signifie que le dispositif 14 est une implémentation physique d’un filtre de convolution FC sur un tableau d’entrée IE implémenté par la première couche de neurones 12 et un tableau de sortie IS implémenté par la deuxième couche de neurones 12. Un tel dispositif 14 est capable d’effectuer de larges produits matriciels en parallèle avec des transformations non-linéaires. Comme expliqué précédemment, une telle non-linéarité provient du fait que les neurones 12 n’oscillent qu’au-dessus d’un courant de seuil. Un tel dispositif 14 est ainsi compatible avec un système 10 comportant un nombre de couches supérieur à 3, de préférence supérieur à 5 et/ou le nombre de chaînes 20 est supérieur à 9, de préférence supérieur à 100. En outre, le dispositif 14 ayant de la mémoire le tout intégré sur une même puce permettrait de réduire drastiquement la consommation d’énergie, et d’augmenter la vitesse d’exécution de la reconnaissance d’image. Cette augmentation de vitesse est d’autant plus sensible que le dispositif 14 n’implique aucun multiplexage temporel. De plus, le dispositif 14 est très compact puisque les composants formant les oscillateurs et les résonateurs 22 peuvent présenter des dimensions de l’ordre de 20 nm. De tels composants sont, en outre, compatibles avec la technologie CMOS, ce qui rend leur intégration aisée. Par ailleurs, il est proposé de modifier les poids synaptiques de manière simultanée à l’aide d’une unité d’ajustement de fréquences U communes à plusieurs résonateurs 22, ce qui fait gagner beaucoup de temps en écriture. Ainsi, l’emploi d’un applicateur de courant pour l’unité d’ajustement de fréquences U permet un contrôle aisé des poids synaptiques grâce à un contrôle analogique. Néanmoins, du fait qu’il faut appliquer en permanence le courant continu, un tel mode de réalisation correspond à un fonctionnement volatile : Selon un autre exemple, l’unité d’ajustement de fréquences U est un applicateur d’impulsions de courant. En fonctionnement, lorsqu’une impulsion de courant passe par une ligne de champ, un fort champ magnétique est produit. Un tel fort champ magnétique provoque l’aimantation d’une couche du résonateur 22. Il est alors possible d’alterner entre deux fréquences différentes, ce qui permet que le résonateur 22 présente deux états en fonction de l’application ou non d’une impulsion de courant par l’applicateur d’impulsions de courant. Un tel exemple correspond donc à un fonctionnement non-volatile mais avec des poids uniquement binaires. Selon encore un autre exemple, l’unité d’ajustement de fréquences U est un applicateur de tension. Une tension de grille appliquée au-dessus du résonateur 22 déplace des atomes d’oxygène à l’interface entre la barrière tunnel (oxyde) et la couche supérieure du résonateur 22. Cela permet de modifier l’anisotropie magnétique, et donc de modifier le champ magnétique effectif appliqué. Un tel exemple correspond donc à un fonctionnement analogique et non-volatile. Selon les besoins, les unités d’ajustement de fréquences sont selon un ou plusieurs des exemples précédents. Par exemple, dans une partie du réseau de neurones où il est imposé que les poids soient binaires, l’emploi d’un applicateur d’impulsions de courant est indiqué mais dans une partie du réseau de neurones où les poids sont quelconques, l’emploi d’un applicateur de tension est indiqué. Dans un tel exemple, les unités d’ajustement de fréquences sont soit des applicateurs d’impulsions de courant soit des applicateurs de tension. L’unité d’ajustement des fréquences est ainsi un élément propre à ajuster la fréquence d’un résonateur 22 par modification de l’un parmi la tension, le courant ou le champ magnétique appliquée à un résonateur 22. La présente une variante du dispositif 14 de la . Le dispositif 14 de la présente les mêmes éléments que le dispositif 14 de la figure 3. Dans un souci de simplification, les remarques qui sont valables pour les deux dispositifs 14 ne sont pas répétées dans ce qui suit. Seules les différences sont soulignées. Dans un tel dispositif 14, les chaînes 20 ne s’étendent pas selon une ligne perpendiculaire à la ligne selon laquelle s’étendent les neurones 16 de la première couche de neurones 12. Les chaînes 20 s’étendent ainsi selon une colonne. Par ailleurs, au lieu d’utiliser un sommateur 23 et un amplificateur 24, les signaux de chaque neurone 16 sont transmis selon des lignes de champs radiofréquences horizontales visibles en pointillés sur la . Chaque signal d’un neurone 16 est transmis selon une ligne de champs qui lui est propre. De ce fait, les résonateurs 22 associés au même poids (ou à la même addition de fréquence) ne sont pas alignés selon une colonne ou une ligne. Les unités d’ajustement de fréquences sont alors agencées pour opérer selon une ligne en diagonale. Le dispositif 14 selon la présente les mêmes avantages que le dispositif 14 de la . La présente une variante du dispositif 14 de la . Le dispositif 14 de la présente les mêmes éléments que le dispositif 14 de la figure 3. Dans un souci de simplification, les remarques qui sont valables pour les deux dispositifs 14 ne sont pas répétées dans ce qui suit. Seules les différences sont soulignées. Les résonateurs 22 sont agencés de manière similaire à ceux de la . Toutefois, au lieu d’utiliser un sommateur 23 et un amplificateur 24, les signaux de chaque neurone 16 sont transmis selon des lignes de champs radiofréquences diagonales visibles en pointillés sur la . Chaque ligne de champs transmet un signal qui lui est propre, le signal étant composé d’au plus deux signaux de deux neurones 16 différents de la première couche de neurones 12. Plus précisément, chaque ligne de champs est agencée pour transmettre l’ensemble des fréquences propres des résonateurs 22 de la diagonale. Cela signifie que chaque ligne de champs agencée pour transmettre le signal à au plus trois résonateurs 22 est reliée à un seul neurone 16 alors que chaque ligne de champs agencée pour transmettre le signal à plus de trois résonateurs 22 est reliée à deux neurones 16. Selon l’exemple proposé, la première ligne de champs transmet le signal provenant du neurone 16 de la première couche de neurones 12 dont la fréquence est f 1,1,1 , (un seul résonateur 22 sur le trajet de la première ligne de champs) la deuxième ligne de champs transmet le signal provenant du neurone 16 de la première couche de neurones 12 dont la fréquence est f 1,2,1 (deux résonateurs 22 sur le trajet de la deuxième ligne de champs), la troisième ligne de champs transmet le signal du neurone 16 de la première couche de neurones 12 dont la fréquence est f 1,3,1 (trois résonateurs 22 sur le trajet de la troisième ligne de champs), la quatrième ligne de champs transmet le signal du neurone 16 de la première couche de neurones 12 dont la fréquence est f 2,1,1 et le signal du neurone 16 de la première couche de neurones 12 dont la fréquence est f 1,4,1 et ainsi de suite. Un tel agencement permet d’obtenir la même compacité que le dispositif 14 de la figure 3 en se passant de l’utilisation d’un sommateur 23 grâce à un emploi astucieux des récurrences propres aux réseaux de neurones convolutionels. D’autres modes de réalisation sont envisageables en combinant les modes de réalisation précités lorsque cela est techniquement possible. Dispositif (14) implémentant physiquement un filtre de convolution (FC) d’un réseau de neurones, le filtre de convolution (FC) prenant en entrée un tableau d’entrée (IE) codé selon au moins un canal d’entrée pour obtenir en sortie un tableau de sortie (IS) codé selon au moins un canal de sortie, le tableau d’entrée (IE) étant un ensemble de cases d’entrée agencées selon une matrice d’entrée, chaque case présentant une valeur propre à chaque canal d’entrée, une première couche de neurones (12) implémentant physiquement le tableau d’entrée (IE), chaque neurone (16) de la première couche de neurones (12) étant un oscillateur, notamment un oscillateur radiofréquence, oscillant à une fréquence propre, chaque neurone (16) de la première couche de neurones (12) correspondant de manière biunivoque à la valeur d’une case d’un canal d’entrée, le tableau de sortie (IS) étant un ensemble de cases de sortie agencées selon une matrice de sortie, chaque case présentant une valeur propre à chaque canal de sortie, une deuxième couche de neurones (12) implémentant physiquement le tableau de sortie (IS), chaque neurone (16) de la deuxième couche de neurones (12) étant un oscillateur, notamment un oscillateur radiofréquence, oscillant à une fréquence propre, chaque neurone (16) de la deuxième couche de neurones (12) correspondant de manière biunivoque à la valeur d’une case d’un canal de sortie, le filtre de convolution (FC) étant un ensemble de noyaux de convolution (NC), chaque noyau de convolution (NC) étant spécifique d’un canal de sortie, chaque noyau de convolution (NC) délimitant un sous-ensemble matriciel présentant une taille strictement inférieure à la taille de la matrice d’entrée, le sous-ensemble matriciel d’un noyau de convolution (NC) comportant un ensemble de coefficients de convolution, l’application d’un noyau de convolution (NC) pour le ou chaque canal d’entrée à un sous-ensemble matriciel de la matrice d’entrée dont le premier élément est une case d’entrée ayant des premières coordonnées donnant la valeur de la case de sortie ayant les premières coordonnées pour la matrice de sortie selon le canal de sortie spécifique au noyau de convolution (NC) appliqué, le dispositif (14) comprenant des ensembles de chaînes synaptiques (20), chaque chaîne synaptique (20) comportant des synapses (22), chaque synapse (22) étant un résonateur (22), notamment un résonateur spintronique, les résonateurs (22) étant en série, chaque résonateur (22) ayant une fréquence de résonance ajustable, chaque ensemble de chaînes synaptiques (20) étant propre à appliquer un noyau de convolution (NC) respectif, chaque chaîne synaptique (20) d’un même ensemble de chaînes synaptiques (20) rassemblant les résonateurs (22) ayant pour fréquence de résonance la fréquence des neurones (16) implémentant les valeurs des cases du sous-ensemble matriciel de la matrice d’entrée associé au noyau de convolution (NC) de l’ensemble de chaînes synaptiques (20) et dont le premier élément est une case d’entrée ayant des coordonnées respectives, chaque résonateur (22) ayant une fréquence ajustée par une unité d’ajustement de fréquences (U, U1, U2, U3) pour que la fréquence du résonateur (22) soit égale à la fréquence de résonance à laquelle est ajouté un décalage en fréquence dépendant du coefficient de convolution du noyau de convolution (NC) à appliquer au neurone (16), le nombre de chaînes synaptiques (20) d’un même ensemble étant égal au nombre de cases du tableau de sortie (IS) que le noyau de convolution (NC) permet d’obtenir par application sur le tableau d’entrée (IE). Dispositif selon la revendication 1, dans lequel l’unité d’ajustement de fréquences (U, U1, U2, U3) est la même pour les résonateurs (22) d’un même ensemble de chaînes synaptiques (20) pour lequel le coefficient de convolution à appliquer est identique. Dispositif selon la revendication 1 ou 2, dans lequel il est défini pour chaque chaîne synaptique (20) une entrée et une sortie, le dispositif (14) comportant au moins un amplificateur (24, 26) positionné soit à l’entrée soit à la sortie. Dispositif selon l’une quelconque des revendications 1 à 3, dans lequel chaque unité d’ajustement de fréquences (U, U1, U2, U3) est choisie dans la liste constituée d’un applicateur de courant continu, un applicateur d’impulsions de courant et un applicateur de tension. Dispositif selon l’une quelconque des revendications 1 à 4, dans lequel les résonateurs (22) sont agencés selon une matrice dont les colonnes sont les résonateurs (22) ayant le même coefficient de convolution à appliquer. Dispositif selon l’une quelconque des revendications 1 à 5, dans lequel le dispositif (14) comporte un sommateur (23) des signaux issus des neurones (16) de la première couche de neurones (12). Dispositif selon l’une quelconque des revendications 1 à 5, dans lequel les résonateurs (22) sont reliés à au plus deux neurones (16) de la première couche de neurones (12). Dispositif selon l’une quelconque des revendications 1 à 4, dans lequel les chaînes synaptiques (20) sont parallèles à une ligne selon laquelle sont agencés les neurones (16) de la première couche de neurones (12). Dispositif selon la revendication 8, dans lequel chaque résonateur (22) est relié à un unique neurone (16) de la première couche de neurones (12). Système (10) implémentant physiquement un réseau de neurones convolutionnel comportant un dispositif (14) selon l’une quelconque des revendications 1 à 9.