Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Aritmetikk | Tensor Operations and Execution
Introduksjon til TensorFlow

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 tf.add(), .assign_add()-metoder og pluss-tegnet +. Vi kan også bruke broadcasting med pluss-tegnet + eller med tf.add()-metoden.

Broadcasting gjør det mulig å utføre elementvise operasjoner på tensorer med ulike, men kompatible, former ved å virtuelt utvide den mindre tensoren slik at den matcher formen til den større tensoren.

broadcasting_1d
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)
Note
Merk

For den direkte metoden må det grunnleggende elementet være av typen muterbar Variable og ikke en konstant.

Subtraksjon

Det finnes analoge metoder for subtraksjon som for addisjon:

  • tf.add() endres til tf.subtract();
  • Pluss-tegn + endres til minus-tegn -;
  • .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)

Multiplikasjon (elementvis)

For multiplikasjon finnes det ikke en in-place-metode, siden matrise-multiplikasjon alltid resulterer i et nytt objekt. Andre operasjoner har derimot tilsvarende metoder:

  • 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)

Divisjon

Tilsvarende som 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)

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 dypere forståelse av broadcasting, kan du se den offisielle NumPy-dokumentasjonssiden om dette emnet.

broadcasting_2d
Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 2. Kapittel 1
single

single

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 tf.add(), .assign_add()-metoder og pluss-tegnet +. Vi kan også bruke broadcasting med pluss-tegnet + eller med tf.add()-metoden.

Broadcasting gjør det mulig å utføre elementvise operasjoner på tensorer med ulike, men kompatible, former ved å virtuelt utvide den mindre tensoren slik at den matcher formen til den større tensoren.

broadcasting_1d
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)
Note
Merk

For den direkte metoden må det grunnleggende elementet være av typen muterbar Variable og ikke en konstant.

Subtraksjon

Det finnes analoge metoder for subtraksjon som for addisjon:

  • tf.add() endres til tf.subtract();
  • Pluss-tegn + endres til minus-tegn -;
  • .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)

Multiplikasjon (elementvis)

For multiplikasjon finnes det ikke en in-place-metode, siden matrise-multiplikasjon alltid resulterer i et nytt objekt. Andre operasjoner har derimot tilsvarende metoder:

  • 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)

Divisjon

Tilsvarende som 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)

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 dypere forståelse av broadcasting, kan du se den offisielle NumPy-dokumentasjonssiden om dette emnet.

broadcasting_2d
Oppgave

Sveip for å begynne å kode

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 er det som å multiplisere [[1, 2], [3, 4], [5, 6]] med [[2, 4], [2, 4], [2, 4]]. Ved divisjon er det som å dividere [[2, 4, 6], [4, 8, 12]] med [[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 2. Kapittel 1
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

some-alt