Grunnleggende Operasjoner: Aritmetikk
Aritmetiske operasjoner
TensorFlow tilbyr en rekke aritmetiske operasjoner for manipulering av tensorer. Disse operasjonene, og mange andre i TensorFlow, støtter broadcasting, noe som gjør det enklere å utføre elementvise operasjoner på tensorer med ulike former.
Addisjon
For addisjon av tensorer kan vi bruke metodene tf.add(), .assign_add() og plusstegnet +. Vi kan også bruke broadcasting med plusstegnet + eller med tf.add()-metoden.
Broadcasting gjør det mulig å utføre elementvise operasjoner på tensorer med forskjellige, men kompatible, former ved å virtuelt utvide den minste tensorn til å matche formen til den største tensorn.
12345678910111213141516171819202122232425import tensorflow as tf # Create two tensors a = tf.Variable([1, 2, 3]) b = tf.constant([4, 5, 6]) # Perform element-wise addition with TF method c1 = tf.add(a, b) # Same as `c1` calculation, but shorter c2 = a + b # Using broadcasting; # Same as `[1, 2, 3] + [3, 3, 3]` c3 = a + 3 # The most efficient one; # Changes the object inplace without creating a new one; # Result is the same as for `c1` and `c2`. a.assign_add(b) print('TF method:\t', c1) print('Plus sign:\t', c2) print('Broadcasting:\t', c3) print('Inplace change:\t', a)
For inplace-metoden må det grunnleggende elementet være av muterbar Variable-type og ikke en konstant.
Subtraksjon
Vi har analoger av alle metoder for subtraksjon som for addisjon:
tf.add()endres tiltf.subtract();- Pluss-tegnet
+endres til minus-tegnet-; .assign_add()endres til.assign_sub().
123456789101112131415161718192021import tensorflow as tf # Create two tensors a = tf.Variable([4, 5, 6]) b = tf.constant([1, 2, 3]) # Perform element-wise substraction c1 = tf.subtract(a, b) c2 = a - b # Using broadcasting; # Same as `[4, 5, 6] - [3, 3, 3]` c3 = a - 3 # Inplace substraction a.assign_sub(b) print('TF method:\t', c1) print('Minus sign:\t', c2) print('Broadcasting:\t', c3) print('Inplace change:\t', a)
Multiplikasjon (Elementvis)
For multiplikasjon finnes det ingen inplace-metode, siden matrise-multiplikasjon i seg selv resulterer i et nytt objekt. Andre operasjoner har imidlertid sine motparter:
tf.add()tilsvarertf.multiply();- Pluss-tegnet
+tilsvarer stjerne-tegnet*.
1234567891011121314151617import tensorflow as tf # Create two tensors a = tf.constant([1, 2, 3]) b = tf.constant([4, 5, 6]) # Perform element-wise multiplication c1 = tf.multiply(a, b) c2 = a * b # Using broadcasting; # Same as `[1, 2, 3] * [3, 3, 3]` c3 = a * 3 print('TF method:\t', c1) print('Asterisk sign:\t', c2) print('Broadcasting:\t', c3)
Divisjon
Tilsvarende som for multiplikasjon, men med tf.divide() og /-tegnet.
1234567891011121314151617import tensorflow as tf # Create two tensors a = tf.constant([6, 8, 10]) b = tf.constant([2, 4, 5]) # Perform element-wise division c1 = tf.divide(a, b) c2 = a / b # Using broadcasting; # Same as `[6, 8, 10] / [2, 2, 2]` c3 = a / 2 print('TF method:\t', c1) print('Asterisk sign:\t', c2) print('Broadcasting:\t', c3)
Broadcasting
Broadcasting er begrepet som brukes for å beskrive hvordan tensorer med ulike former automatisk og implisitt behandles under aritmetiske operasjoner slik at de fremstår som om de har samme form. Dette gjør det mulig å utføre operasjoner på tensorer med forskjellige størrelser uten å eksplisitt endre størrelsen først.
For en grundigere forståelse av broadcasting, kan du se den offisielle NumPy-dokumentasjonssiden om dette emnet.
Swipe to start coding
Gitt et sett med matriser, utfør følgende operasjoner:
- In-place addisjon av en 2x2-matrise.
- Subtraksjon ved bruk av
tf.subtract()-metoden for en 2x3-matrise. - Broadcasting-multiplikasjon av en 3x2-matrise med en annen 1x2-matrise.
- Broadcasting-divisjon mellom to matriser, én av størrelse 2x3 og den andre 2x1.
Merk
Merk deg broadcasting-adferden i multiplikasjons- og divisjonsoperasjonene. Ved multiplikasjon tilsvarer det å multiplisere
[[1, 2], [3, 4], [5, 6]]med[[2, 4], [2, 4], [2, 4]]. Ved divisjon tilsvarer det å dele[[2, 4, 6], [4, 8, 12]]på[[2, 2, 2], [4, 4, 4]].I det første tilfellet utvides matrisen langs 0-aksen (første parameter i shape), mens i det andre tilfellet utvides matrisen langs 1-aksen (andre parameter i shape). Dette avhenger av matrisenes form.
Løsning
Takk for tilbakemeldingene dine!
single
Spør AI
Spør AI
Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår
Awesome!
Completion rate improved to 5.56
Grunnleggende Operasjoner: Aritmetikk
Sveip for å vise menyen
Aritmetiske operasjoner
TensorFlow tilbyr en rekke aritmetiske operasjoner for manipulering av tensorer. Disse operasjonene, og mange andre i TensorFlow, støtter broadcasting, noe som gjør det enklere å utføre elementvise operasjoner på tensorer med ulike former.
Addisjon
For addisjon av tensorer kan vi bruke metodene tf.add(), .assign_add() og plusstegnet +. Vi kan også bruke broadcasting med plusstegnet + eller med tf.add()-metoden.
Broadcasting gjør det mulig å utføre elementvise operasjoner på tensorer med forskjellige, men kompatible, former ved å virtuelt utvide den minste tensorn til å matche formen til den største tensorn.
12345678910111213141516171819202122232425import tensorflow as tf # Create two tensors a = tf.Variable([1, 2, 3]) b = tf.constant([4, 5, 6]) # Perform element-wise addition with TF method c1 = tf.add(a, b) # Same as `c1` calculation, but shorter c2 = a + b # Using broadcasting; # Same as `[1, 2, 3] + [3, 3, 3]` c3 = a + 3 # The most efficient one; # Changes the object inplace without creating a new one; # Result is the same as for `c1` and `c2`. a.assign_add(b) print('TF method:\t', c1) print('Plus sign:\t', c2) print('Broadcasting:\t', c3) print('Inplace change:\t', a)
For inplace-metoden må det grunnleggende elementet være av muterbar Variable-type og ikke en konstant.
Subtraksjon
Vi har analoger av alle metoder for subtraksjon som for addisjon:
tf.add()endres tiltf.subtract();- Pluss-tegnet
+endres til minus-tegnet-; .assign_add()endres til.assign_sub().
123456789101112131415161718192021import tensorflow as tf # Create two tensors a = tf.Variable([4, 5, 6]) b = tf.constant([1, 2, 3]) # Perform element-wise substraction c1 = tf.subtract(a, b) c2 = a - b # Using broadcasting; # Same as `[4, 5, 6] - [3, 3, 3]` c3 = a - 3 # Inplace substraction a.assign_sub(b) print('TF method:\t', c1) print('Minus sign:\t', c2) print('Broadcasting:\t', c3) print('Inplace change:\t', a)
Multiplikasjon (Elementvis)
For multiplikasjon finnes det ingen inplace-metode, siden matrise-multiplikasjon i seg selv resulterer i et nytt objekt. Andre operasjoner har imidlertid sine motparter:
tf.add()tilsvarertf.multiply();- Pluss-tegnet
+tilsvarer stjerne-tegnet*.
1234567891011121314151617import tensorflow as tf # Create two tensors a = tf.constant([1, 2, 3]) b = tf.constant([4, 5, 6]) # Perform element-wise multiplication c1 = tf.multiply(a, b) c2 = a * b # Using broadcasting; # Same as `[1, 2, 3] * [3, 3, 3]` c3 = a * 3 print('TF method:\t', c1) print('Asterisk sign:\t', c2) print('Broadcasting:\t', c3)
Divisjon
Tilsvarende som for multiplikasjon, men med tf.divide() og /-tegnet.
1234567891011121314151617import tensorflow as tf # Create two tensors a = tf.constant([6, 8, 10]) b = tf.constant([2, 4, 5]) # Perform element-wise division c1 = tf.divide(a, b) c2 = a / b # Using broadcasting; # Same as `[6, 8, 10] / [2, 2, 2]` c3 = a / 2 print('TF method:\t', c1) print('Asterisk sign:\t', c2) print('Broadcasting:\t', c3)
Broadcasting
Broadcasting er begrepet som brukes for å beskrive hvordan tensorer med ulike former automatisk og implisitt behandles under aritmetiske operasjoner slik at de fremstår som om de har samme form. Dette gjør det mulig å utføre operasjoner på tensorer med forskjellige størrelser uten å eksplisitt endre størrelsen først.
For en grundigere forståelse av broadcasting, kan du se den offisielle NumPy-dokumentasjonssiden om dette emnet.
Swipe to start coding
Gitt et sett med matriser, utfør følgende operasjoner:
- In-place addisjon av en 2x2-matrise.
- Subtraksjon ved bruk av
tf.subtract()-metoden for en 2x3-matrise. - Broadcasting-multiplikasjon av en 3x2-matrise med en annen 1x2-matrise.
- Broadcasting-divisjon mellom to matriser, én av størrelse 2x3 og den andre 2x1.
Merk
Merk deg broadcasting-adferden i multiplikasjons- og divisjonsoperasjonene. Ved multiplikasjon tilsvarer det å multiplisere
[[1, 2], [3, 4], [5, 6]]med[[2, 4], [2, 4], [2, 4]]. Ved divisjon tilsvarer det å dele[[2, 4, 6], [4, 8, 12]]på[[2, 2, 2], [4, 4, 4]].I det første tilfellet utvides matrisen langs 0-aksen (første parameter i shape), mens i det andre tilfellet utvides matrisen langs 1-aksen (andre parameter i shape). Dette avhenger av matrisenes form.
Løsning
Takk for tilbakemeldingene dine!
single