Aritmética
Operaciones aritméticas
TensorFlow proporciona numerosas operaciones aritméticas para la manipulación de tensores. Estas operaciones, junto con muchas otras en TensorFlow, admiten broadcasting, lo que facilita realizar operaciones elemento a elemento en tensores de diferentes formas.
Suma
Para la suma de tensores se pueden utilizar los métodos tf.add(), .assign_add() y el signo más +. También es posible emplear broadcasting con el signo más + o con el método tf.add().
El broadcasting permite realizar operaciones elemento a elemento en tensores de formas diferentes pero compatibles, expandiendo virtualmente el tensor más pequeño para que coincida con la forma del tensor más grande.
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)
Para el método inplace, el elemento fundamental debe ser de tipo Variable mutable en lugar de una constante.
Sustracción
Existen análogos de todos los métodos para la sustracción como para la suma:
tf.add()se convierte entf.subtract();- El signo más
+se convierte en signo menos-; .assign_add()se convierte en.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)
Multiplicación (elemento a elemento)
Para la multiplicación, no existe un método inplace ya que la multiplicación de matrices produce inherentemente un nuevo objeto. Sin embargo, otras operaciones tienen sus equivalentes:
tf.add()corresponde atf.multiply();- El signo más
+corresponde al signo de asterisco*.
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)
División
Similar a la multiplicación, pero con tf.divide() y el signo /.
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 es el término utilizado para describir cómo los tensores con diferentes formas son tratados automática e implícitamente durante las operaciones aritméticas para que parezcan tener la misma forma. Permite realizar operaciones en tensores de diferentes tamaños sin necesidad de redimensionarlos explícitamente primero.
Para una comprensión más profunda de broadcasting, puede consultar la página de documentación de NumPy sobre este tema.
Swipe to start coding
Dado un conjunto de matrices, realice las siguientes operaciones:
- Suma in situ de una matriz 2x2.
- Sustracción utilizando el método
tf.subtract()para una matriz 2x3. - Multiplicación con broadcasting de una matriz 3x2 con otra matriz 1x2.
- División con broadcasting entre dos matrices, una de tamaño 2x3 y la otra 2x1.
Nota
Observe el comportamiento de broadcasting en las operaciones de multiplicación y división. En la multiplicación, es como multiplicar
[[1, 2], [3, 4], [5, 6]]con[[2, 4], [2, 4], [2, 4]]. En la división, es como dividir[[2, 4, 6], [4, 8, 12]]por[[2, 2, 2], [4, 4, 4]].En el primer caso, el broadcasting expande la matriz a lo largo del eje 0 (primer parámetro de la forma), mientras que en el segundo caso, la matriz se expande a lo largo del eje 1 (segundo parámetro de la forma). Esto depende de la forma de las matrices.
Solución
¡Gracias por tus comentarios!
single
Pregunte a AI
Pregunte a AI
Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla
Awesome!
Completion rate improved to 6.25
Aritmética
Desliza para mostrar el menú
Operaciones aritméticas
TensorFlow proporciona numerosas operaciones aritméticas para la manipulación de tensores. Estas operaciones, junto con muchas otras en TensorFlow, admiten broadcasting, lo que facilita realizar operaciones elemento a elemento en tensores de diferentes formas.
Suma
Para la suma de tensores se pueden utilizar los métodos tf.add(), .assign_add() y el signo más +. También es posible emplear broadcasting con el signo más + o con el método tf.add().
El broadcasting permite realizar operaciones elemento a elemento en tensores de formas diferentes pero compatibles, expandiendo virtualmente el tensor más pequeño para que coincida con la forma del tensor más grande.
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)
Para el método inplace, el elemento fundamental debe ser de tipo Variable mutable en lugar de una constante.
Sustracción
Existen análogos de todos los métodos para la sustracción como para la suma:
tf.add()se convierte entf.subtract();- El signo más
+se convierte en signo menos-; .assign_add()se convierte en.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)
Multiplicación (elemento a elemento)
Para la multiplicación, no existe un método inplace ya que la multiplicación de matrices produce inherentemente un nuevo objeto. Sin embargo, otras operaciones tienen sus equivalentes:
tf.add()corresponde atf.multiply();- El signo más
+corresponde al signo de asterisco*.
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)
División
Similar a la multiplicación, pero con tf.divide() y el signo /.
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 es el término utilizado para describir cómo los tensores con diferentes formas son tratados automática e implícitamente durante las operaciones aritméticas para que parezcan tener la misma forma. Permite realizar operaciones en tensores de diferentes tamaños sin necesidad de redimensionarlos explícitamente primero.
Para una comprensión más profunda de broadcasting, puede consultar la página de documentación de NumPy sobre este tema.
Swipe to start coding
Dado un conjunto de matrices, realice las siguientes operaciones:
- Suma in situ de una matriz 2x2.
- Sustracción utilizando el método
tf.subtract()para una matriz 2x3. - Multiplicación con broadcasting de una matriz 3x2 con otra matriz 1x2.
- División con broadcasting entre dos matrices, una de tamaño 2x3 y la otra 2x1.
Nota
Observe el comportamiento de broadcasting en las operaciones de multiplicación y división. En la multiplicación, es como multiplicar
[[1, 2], [3, 4], [5, 6]]con[[2, 4], [2, 4], [2, 4]]. En la división, es como dividir[[2, 4, 6], [4, 8, 12]]por[[2, 2, 2], [4, 4, 4]].En el primer caso, el broadcasting expande la matriz a lo largo del eje 0 (primer parámetro de la forma), mientras que en el segundo caso, la matriz se expande a lo largo del eje 1 (segundo parámetro de la forma). Esto depende de la forma de las matrices.
Solución
¡Gracias por tus comentarios!
single