Konvertieren Sie Tensor in TensorFlow in ein NumPy-Array

Hafiz Muhammad Zohaib 21 Juni 2023
  1. TensorFlow-Tensoren vs. NumPy-Arrays
  2. Konvertieren Sie Tensor in TensorFlow in ein NumPy-Array
Konvertieren Sie Tensor in TensorFlow in ein NumPy-Array

Dieser Artikel zeigt die Möglichkeiten zum Konvertieren von Tensoren in ein NumPy-Array in TensorFlow. Die Kompatibilität von NumPy mit TensorFlow ist ausgezeichnet, und wir können einen Tensor problemlos in ein NumPy-Array konvertieren.

Dieser Artikel zeigt zwei Methoden zum Konvertieren von Tensoren in ein NumPy-Array.

TensorFlow-Tensoren vs. NumPy-Arrays

Ein Array ist eine Datenstruktur, die zum Speichern einer Sammlung von Elementen verwendet wird. Um die mit Arrays verbundene schnellere numerische Operation zu unterstützen, sind NumPy und TensorFlow praktische Bibliotheken, die man problemlos in Python verwenden kann.

Die NumPy-Bibliothek wird hauptsächlich für klassische maschinelle Lernaufgaben verwendet, während TensorFlow Deep-Learning-Berechnungen sehr gut unterstützt. Ein wesentlicher Vorteil eines Tensors gegenüber einem Array besteht darin, dass die GPUs Tensoren besser verarbeiten können als die primitiven Arrays.

Konvertieren Sie Tensor in TensorFlow in ein NumPy-Array

TensorFlow unterstützt die automatische Konvertierung des NumPy-Arrays während der Implementierung. Sie können den folgenden Code für die automatische Konvertierung sehen.

!pip install tensorflow==2.9.1
import numpy as np
import tensorflow as tf

ndarray = np.ones([3, 3])
print("TensorFlow operations convert numpy arrays to Tensors automatically")
tensor = tf.math.multiply(ndarray, 42)
print(tensor)

Im obigen Code ist ndarray ein NumPy-Array, und tf.math.multiply(tensor1, tensor2) nimmt es als Argument und wandelt es automatisch in einen Tensor um, bevor es mit dem anderen Tensor (d. h. 42) multipliziert wird. Beachten Sie, dass tensor1 und tensor vom gleichen Typ sein müssen.

Jetzt sehen wir eine explizite Konvertierungsmethode. Um von einem Tensor aufgerufen zu werden, müssen Sie die Funktion .numpy() verwenden.

# Convert tensor to numpy array explicitly.
a = tf.constant([[1, 2], [3, 4]])
b = a.numpy()
print(type(b))

Im obigen Code ist a ein konstanter Tensor, auf dem wir die eingebaute Funktion .numpy() aufrufen, die den Tensor a in ein NumPy-Array umwandelt.

Das obige ergibt die Ausgabe als:

numpy.ndarray

In TensorFlow ist Eifer Execution eine Umgebung, die die schnelle Ausführung der verschiedenen Operationen von Tensoren unterstützt, ohne visuelle Graphen hinter den Kulissen zu erstellen.

Standardmäßig ist die eifrige Ausführung in TensorFlow aktiviert. Aber wenn Sie es während der Implementierung deaktivieren, können Sie den Tensor nicht in ein NumPy-Array konvertieren.

In diesem Fall sehen Sie den folgenden Code;

tf.compat.v1.disable_eager_execution()  # need to disable eager in TF2.9.1
# Multiplication
a = tf.constant([1, 2])
b = tf.constant(6)
c = a * b
sess = tf.compat.v1.Session()
# Evaluate the tensor c.
print(type(sess.run(c)))

Sie können diese Seite besuchen, um mehr zusammenhängende Operationen zwischen TensorFlow und NumPy zu überprüfen.