Reduktionsoperationer
Reduktionsoperationer
Inom tensoroperationer finns det många uppgifter där vi behöver reducera dimensionerna av våra data, antingen genom att sammanfatta dem över en eller flera axlar. Om vi till exempel har en 2D-tensor (en matris), kan en reduktionsoperation beräkna ett värde för varje rad eller kolumn, vilket resulterar i en 1D-tensor (en vektor). TensorFlow erbjuder ett antal operationer för detta ändamål, och i detta kapitel kommer vi att utforska de mest använda reduktionsoperationerna.
Summa, Medelvärde, Maximum och Minimum
TensorFlow erbjuder följande metoder för dessa beräkningar:
tf.reduce_sum()
: beräknar summan av alla element i tensorn eller längs en specifik axel;tf.reduce_mean()
: beräknar medelvärdet av tensorernas element;tf.reduce_max()
: bestämmer det största värdet i tensorn;tf.reduce_min()
: hittar det minsta värdet i tensorn.
12345678910111213141516171819import tensorflow as tf tensor = tf.constant([[1., 2., 3.], [4., 5., 6.], [7., 8., 9.]]) # Calculate sum of all elements total_sum = tf.reduce_sum(tensor) print("Total Sum:", total_sum.numpy()) # Calculate mean of all elements mean_val = tf.reduce_mean(tensor) print("Mean Value:", mean_val.numpy()) # Determine the maximum value max_val = tf.reduce_max(tensor) print("Maximum Value:", max_val.numpy()) # Find the minimum value min_val = tf.reduce_min(tensor) print("Minimum Value:", min_val.numpy())
Metoden .numpy()
användes för att konvertera tensorerna till NumPy-arrayer, vilket ger en tydligare visuell presentation av siffrorna vid visning.
Operationer längs specifika axlar
Tensorer kan ha flera dimensioner, och ibland vill vi utföra reduktioner längs en specifik axel. Parametern axis
gör det möjligt att ange vilken axel eller vilka axlar vi vill reducera längs.
axis=0
: utför operationen längs raderna (resulterar i en kolumnvektor);axis=1
: utför operationen längs kolumnerna (resulterar i en radvektor);- Det är möjligt att reducera längs flera axlar samtidigt genom att ange en lista till parametern
axis
; - När tensorernas rang reduceras kan du använda
keepdims=True
för att behålla den reducerade dimensionen som 1.
För en 2D-tensor (matris):
1234567891011121314151617181920import tensorflow as tf tensor = tf.constant([[1., 2.], [3., 4.], [5., 6.]]) # Calculate the sum of each column col_sum = tf.reduce_sum(tensor, axis=0) print("Column-wise Sum:", col_sum.numpy()) # Calculate the maximum of each row col_max = tf.reduce_max(tensor, axis=1) print("Row-wise Max:", col_max.numpy()) # Calculate the mean of the whole tensor (reduce along both directions) # Equivalent to not specifying the axis at all total_mean = tf.reduce_mean(tensor, axis=(0, 1)) print("Total Mean:", total_mean.numpy()) # Calculate the mean of the whole tensor (keeping reduced dimensions) total_mean_dim = tf.reduce_mean(tensor, axis=(0, 1), keepdims=True) print("Total Mean (saving dimensions):", total_mean_dim.numpy())
När du utför en reduktionsoperation längs en specifik axel eliminerar du i princip den axeln från tensorn, och aggregerar alla tensorer inom den axeln elementvis. Samma effekt gäller för valfritt antal dimensioner.
Så här ser det ut för en 3D-tensor:
12345678910111213141516171819import tensorflow as tf tensor = tf.constant([ [[1, 2], [3, 4]], [[5, 6], [7, 8]], [[9, 10], [11, 12]] ]) # Calculate the sum along axis 0 sum_0 = tf.reduce_sum(tensor, axis=0) print("Sum axis 0:\n", sum_0.numpy()) # Calculate the sum along axis 1 sum_1 = tf.reduce_sum(tensor, axis=1) print("Sum axis 1:\n", sum_1.numpy()) # Calculate the sum along axes 0 and 1 sum_0_1 = tf.reduce_sum(tensor, axis=(0, 1)) print("Sum axes 0 and 1:\n", sum_0_1.numpy())
Många andra reduktionsoperationer finns i TensorFlow, men de fungerar enligt samma principer.
Swipe to start coding
Bakgrund
Du arbetar som data scientist på en väderforskningsbyrå. Du har fått en tensor som innehåller väderavläsningar från olika städer under flera dagar. Tensors strukturen är följande:
- Dimension 1: representerar olika städer;
- Dimension 2: representerar olika dagar.
- Varje post i tensorn är en tuple av
(temperature, humidity)
.
Mål
- Beräkna medeltemperaturen för varje stad över alla dagar.
- Beräkna maximal luftfuktighet över alla städer för varje dag.
Observera
I denna tensor representerar det första talet i varje tuple temperaturen (i Celsius) och det andra talet representerar luftfuktigheten (i procent) för den aktuella dagen och staden.
Lösning
Tack för dina kommentarer!
single
Fråga AI
Fråga AI
Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal
Can you explain what the axis parameter means in more detail?
How does keepdims=True affect the output shape?
Can you show more examples with higher-dimensional tensors?
Awesome!
Completion rate improved to 5.56
Reduktionsoperationer
Svep för att visa menyn
Reduktionsoperationer
Inom tensoroperationer finns det många uppgifter där vi behöver reducera dimensionerna av våra data, antingen genom att sammanfatta dem över en eller flera axlar. Om vi till exempel har en 2D-tensor (en matris), kan en reduktionsoperation beräkna ett värde för varje rad eller kolumn, vilket resulterar i en 1D-tensor (en vektor). TensorFlow erbjuder ett antal operationer för detta ändamål, och i detta kapitel kommer vi att utforska de mest använda reduktionsoperationerna.
Summa, Medelvärde, Maximum och Minimum
TensorFlow erbjuder följande metoder för dessa beräkningar:
tf.reduce_sum()
: beräknar summan av alla element i tensorn eller längs en specifik axel;tf.reduce_mean()
: beräknar medelvärdet av tensorernas element;tf.reduce_max()
: bestämmer det största värdet i tensorn;tf.reduce_min()
: hittar det minsta värdet i tensorn.
12345678910111213141516171819import tensorflow as tf tensor = tf.constant([[1., 2., 3.], [4., 5., 6.], [7., 8., 9.]]) # Calculate sum of all elements total_sum = tf.reduce_sum(tensor) print("Total Sum:", total_sum.numpy()) # Calculate mean of all elements mean_val = tf.reduce_mean(tensor) print("Mean Value:", mean_val.numpy()) # Determine the maximum value max_val = tf.reduce_max(tensor) print("Maximum Value:", max_val.numpy()) # Find the minimum value min_val = tf.reduce_min(tensor) print("Minimum Value:", min_val.numpy())
Metoden .numpy()
användes för att konvertera tensorerna till NumPy-arrayer, vilket ger en tydligare visuell presentation av siffrorna vid visning.
Operationer längs specifika axlar
Tensorer kan ha flera dimensioner, och ibland vill vi utföra reduktioner längs en specifik axel. Parametern axis
gör det möjligt att ange vilken axel eller vilka axlar vi vill reducera längs.
axis=0
: utför operationen längs raderna (resulterar i en kolumnvektor);axis=1
: utför operationen längs kolumnerna (resulterar i en radvektor);- Det är möjligt att reducera längs flera axlar samtidigt genom att ange en lista till parametern
axis
; - När tensorernas rang reduceras kan du använda
keepdims=True
för att behålla den reducerade dimensionen som 1.
För en 2D-tensor (matris):
1234567891011121314151617181920import tensorflow as tf tensor = tf.constant([[1., 2.], [3., 4.], [5., 6.]]) # Calculate the sum of each column col_sum = tf.reduce_sum(tensor, axis=0) print("Column-wise Sum:", col_sum.numpy()) # Calculate the maximum of each row col_max = tf.reduce_max(tensor, axis=1) print("Row-wise Max:", col_max.numpy()) # Calculate the mean of the whole tensor (reduce along both directions) # Equivalent to not specifying the axis at all total_mean = tf.reduce_mean(tensor, axis=(0, 1)) print("Total Mean:", total_mean.numpy()) # Calculate the mean of the whole tensor (keeping reduced dimensions) total_mean_dim = tf.reduce_mean(tensor, axis=(0, 1), keepdims=True) print("Total Mean (saving dimensions):", total_mean_dim.numpy())
När du utför en reduktionsoperation längs en specifik axel eliminerar du i princip den axeln från tensorn, och aggregerar alla tensorer inom den axeln elementvis. Samma effekt gäller för valfritt antal dimensioner.
Så här ser det ut för en 3D-tensor:
12345678910111213141516171819import tensorflow as tf tensor = tf.constant([ [[1, 2], [3, 4]], [[5, 6], [7, 8]], [[9, 10], [11, 12]] ]) # Calculate the sum along axis 0 sum_0 = tf.reduce_sum(tensor, axis=0) print("Sum axis 0:\n", sum_0.numpy()) # Calculate the sum along axis 1 sum_1 = tf.reduce_sum(tensor, axis=1) print("Sum axis 1:\n", sum_1.numpy()) # Calculate the sum along axes 0 and 1 sum_0_1 = tf.reduce_sum(tensor, axis=(0, 1)) print("Sum axes 0 and 1:\n", sum_0_1.numpy())
Många andra reduktionsoperationer finns i TensorFlow, men de fungerar enligt samma principer.
Swipe to start coding
Bakgrund
Du arbetar som data scientist på en väderforskningsbyrå. Du har fått en tensor som innehåller väderavläsningar från olika städer under flera dagar. Tensors strukturen är följande:
- Dimension 1: representerar olika städer;
- Dimension 2: representerar olika dagar.
- Varje post i tensorn är en tuple av
(temperature, humidity)
.
Mål
- Beräkna medeltemperaturen för varje stad över alla dagar.
- Beräkna maximal luftfuktighet över alla städer för varje dag.
Observera
I denna tensor representerar det första talet i varje tuple temperaturen (i Celsius) och det andra talet representerar luftfuktigheten (i procent) för den aktuella dagen och staden.
Lösning
Tack för dina kommentarer!
single