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
Can you explain more about how broadcasting works in TensorFlow?
What are some common errors when using arithmetic operations with tensors?
Can you show examples of broadcasting with tensors of different shapes?
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