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.