Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Grunnleggende Operasjoner: Aritmetikk | Tensores
Introduksjon til TensorFlow

bookGrunnleggende 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.

12345678910111213141516171819202122232425
import 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)
copy
Note
Merk

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 til tf.subtract();
  • Pluss-tegnet + endres til minus-tegnet -;
  • .assign_add() endres til .assign_sub().
123456789101112131415161718192021
import 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)
copy

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() tilsvarer tf.multiply();
  • Pluss-tegnet + tilsvarer stjerne-tegnet *.
1234567891011121314151617
import 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)
copy

Divisjon

Tilsvarende som for multiplikasjon, men med tf.divide() og /-tegnet.

1234567891011121314151617
import 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)
copy

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.

Note
Les mer

For en grundigere forståelse av broadcasting, kan du se den offisielle NumPy-dokumentasjonssiden om dette emnet.

Oppgave

Swipe to start coding

Gitt et sett med matriser, utfør følgende operasjoner:

  1. In-place addisjon av en 2x2-matrise.
  2. Subtraksjon ved bruk av tf.subtract()-metoden for en 2x3-matrise.
  3. Broadcasting-multiplikasjon av en 3x2-matrise med en annen 1x2-matrise.
  4. 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]][[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

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 1. Kapittel 8
single

single

Spør AI

expand

Spør AI

ChatGPT

Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår

Suggested prompts:

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?

close

Awesome!

Completion rate improved to 5.56

bookGrunnleggende 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.

12345678910111213141516171819202122232425
import 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)
copy
Note
Merk

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 til tf.subtract();
  • Pluss-tegnet + endres til minus-tegnet -;
  • .assign_add() endres til .assign_sub().
123456789101112131415161718192021
import 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)
copy

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() tilsvarer tf.multiply();
  • Pluss-tegnet + tilsvarer stjerne-tegnet *.
1234567891011121314151617
import 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)
copy

Divisjon

Tilsvarende som for multiplikasjon, men med tf.divide() og /-tegnet.

1234567891011121314151617
import 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)
copy

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.

Note
Les mer

For en grundigere forståelse av broadcasting, kan du se den offisielle NumPy-dokumentasjonssiden om dette emnet.

Oppgave

Swipe to start coding

Gitt et sett med matriser, utfør følgende operasjoner:

  1. In-place addisjon av en 2x2-matrise.
  2. Subtraksjon ved bruk av tf.subtract()-metoden for en 2x3-matrise.
  3. Broadcasting-multiplikasjon av en 3x2-matrise med en annen 1x2-matrise.
  4. 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]][[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

Switch to desktopBytt til skrivebordet for virkelighetspraksisFortsett der du er med et av alternativene nedenfor
Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 1. Kapittel 8
single

single

some-alt