Tenseurs 5D
Répondre à la discussion
Affichage des résultats 1 à 9 sur 9

Tenseurs 5D



  1. #1
    fred3000gt

    Question Tenseurs 5D


    ------

    Bonjour,

    Bon, question un peu pointue mais quelqu'un ici sait-il pourquoi les principales librairies (pytorch, tensorflow) de réseaux de neurones ne supportent pas les tenseurs 5D??
    Je trouve cela absolument incroyable d'être le seul au monde a en avoir besoin!

    Merci.

    -----

  2. #2
    f6bes

    Re : Tenseurs 5D

    Bjr à toi, Si tu ne développes pas plus....l'attente sera fort longue !
    Bonne journée

  3. #3
    Paraboloide_Hyperbolique

    Re : Tenseurs 5D

    Bonjour,

    Je ne suis pas spécialiste de la bibliothèque pytorch, mais d'après la documentation que j'ai lue* les tenseurs pytorch supportent un nombre arbitraire de dimensions.

    *https://pytorch.org/tutorials/beginn..._tutorial.html

  4. #4
    fred3000gt

    Re : Tenseurs 5D

    Citation Envoyé par Paraboloide_Hyperbolique Voir le message
    Bonjour,

    Je ne suis pas spécialiste de la bibliothèque pytorch, mais d'après la documentation que j'ai lue* les tenseurs pytorch supportent un nombre arbitraire de dimensions.

    *https://pytorch.org/tutorials/beginn..._tutorial.html
    Oui, tu as raison, on peut définir en effet des tenseurs de dimension arbitraire.

    Mais ce je souhaite c'est faire des produits convolutionnels en 5 dimensions, or ces derniers sont limités à 3 dimensions, ce que je trouve surprenant.

    Alors on peut tricher en supposant la séparabilité (il y a d'ailleurs un projet github pour faire cela), mais cela limite drastiquement le type de convolution utilisable.
    Pour illustrer:
    - si tu as un vecteur (tenseur 1 dimension), tu peux utiliser la convolution (1,1,1) (c'est un filtre moyenneur qui va lisser la séquence de chiffres représentée par ton vecteur).
    - si tu as une image (tenseur 2d), tu utiliser la convolution ((1,1,1)(1,1,1)(1,1,1)) qui va rendre floue l'image

    Il s'agit d'un tenseur séparable, c'est à dire que tu peux obtenir la même image floue en convoluant les lignes puis les colonnes successivement. De cette manière on peut monter en 5D, mais c'est limité... aux convolutions séparables, donc cela limite le nombre de combinaisons de poids, donc la possibilité de réussir son apprentissage...

  5. A voir en vidéo sur Futura
  6. #5
    Paraboloide_Hyperbolique

    Re : Tenseurs 5D

    Il me semble que pytorch supporte la transformée de Fourrier pour un nombre de dimensions arbitraire.

    En utilisant la propriété il devrait avoir moyen de s'en sortir (en faisant attention aux bords).

    désigne le produit de convolution, la transformée de Fourier, son inverse et le produit composante par composante.

  7. #6
    fred3000gt

    Re : Tenseurs 5D

    Citation Envoyé par Paraboloide_Hyperbolique Voir le message
    Il me semble que pytorch supporte la transformée de Fourrier pour un nombre de dimensions arbitraire.

    En utilisant la propriété il devrait avoir moyen de s'en sortir (en faisant attention aux bords).

    désigne le produit de convolution, la transformée de Fourier, son inverse et le produit composante par composante.
    Merci.

    On a discuté avec les collègues de ton idée et tout semble indiquer que cette idée tienne parfaitement la route, vraiment bien vu!
    A priori, même le calcul du gradient de pytorch devrait marcher.

    Par contre bien sûr on ne pourra pas échapper à une duplication implicite du signal au-dehors de bords, mais ce n'est pas forcément grave.

  8. #7
    Paraboloide_Hyperbolique

    Re : Tenseurs 5D

    Merci du retour

  9. #8
    fred3000gt

    Re : Tenseurs 5D

    Citation Envoyé par Paraboloide_Hyperbolique Voir le message
    Merci du retour
    Bon, après implémentation dans PyTorch ca marche impec, on se demande même si ce n’est pas plus rapide.

    Question subsidiaire, de pure curiosité, qui m’est venue:
    La transformée de Fourier est linéairement séparable en n dimensions, mais elle permet néanmoins de calculer des convolutions non-séparables… comment un objet mathématique qui n’a pas une propriété peut-il la transmettre?

  10. #9
    Paraboloide_Hyperbolique

    Re : Tenseurs 5D

    Citation Envoyé par fred3000gt Voir le message
    Bon, après implémentation dans PyTorch ca marche impec, on se demande même si ce n’est pas plus rapide.
    Tant mieux! C'est possible que cela soit plus rapide, l'algorithme employé (la FFT - Fast Fourier Transform) est très optimisé dans la plupart des langages de programmation.

    Citation Envoyé par fred3000gt Voir le message
    Question subsidiaire, de pure curiosité, qui m’est venue:
    La transformée de Fourier est linéairement séparable en n dimensions, mais elle permet néanmoins de calculer des convolutions non-séparables… comment un objet mathématique qui n’a pas une propriété peut-il la transmettre?
    Pour faire court: la version discrète de la convolution d'une fonction g avec une fonction f revient à la multiplication de deux matrices dont l'une est circulante. Les matrices circulantes peuvent être diagonalisées (voir https://fr.wikipedia.org/wiki/Matrice_circulante) en utilisant les fonctions qui sont précisément celles qui interviennent dans la transformée de Fourier.

    Bref, la transformée de Fourier nous envoie dans un espace où toute convolution est diagonalisée, donc séparée.

Discussions similaires

  1. Les tenseurs
    Par invitef38b92de dans le forum Physique
    Réponses: 9
    Dernier message: 07/12/2015, 10h09
  2. les tenseurs
    Par invitef38b92de dans le forum Mathématiques du supérieur
    Réponses: 1
    Dernier message: 06/12/2015, 00h15
  3. Tenseurs
    Par invitecbade190 dans le forum Mathématiques du supérieur
    Réponses: 4
    Dernier message: 04/06/2011, 16h12
  4. tenseurs
    Par invite06a166f3 dans le forum Mathématiques du supérieur
    Réponses: 0
    Dernier message: 21/11/2009, 18h37
  5. Tenseurs
    Par invite4c9b876a dans le forum Mathématiques du supérieur
    Réponses: 2
    Dernier message: 29/12/2006, 00h57