TensorFlow에서 Tensor를 NumPy 배열로 변환

Hafiz Muhammad Zohaib 2023년6월21일
  1. TensorFlow 텐서 대 NumPy 어레이
  2. TensorFlow에서 Tensor를 NumPy 배열로 변환
TensorFlow에서 Tensor를 NumPy 배열로 변환

이 기사는 TensorFlow에서 텐서를 NumPy 배열로 변환하는 방법을 보여줍니다. NumPy와 TensorFlow의 호환성은 우수하며 Tensor를 NumPy 배열로 쉽게 변환할 수 있습니다.

이 기사에서는 텐서를 NumPy 배열로 변환하는 두 가지 방법을 보여줍니다.

TensorFlow 텐서 대 NumPy 어레이

배열은 요소 모음을 저장하는 데 사용되는 데이터 구조입니다. 배열과 관련된 더 빠른 수치 연산을 지원하기 위해 NumPy 및 TensorFlow는 편리한 라이브러리이며 Python에서 쉽게 사용할 수 있습니다.

NumPy 라이브러리는 주로 고전적인 기계 학습 작업에 사용되는 반면 TensorFlow는 딥 러닝 계산을 매우 잘 지원합니다. 배열에 비해 텐서의 중요한 이점 중 하나는 GPU가 기본 배열보다 텐서를 처리하는 데 더 좋다는 것입니다.

TensorFlow에서 Tensor를 NumPy 배열로 변환

TensorFlow는 구현 중에 NumPy 배열의 자동 변환을 지원합니다. 자동 변환에 대한 아래 코드를 볼 수 있습니다.

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

위의 코드에서 ndarray는 NumPy 배열이고 tf.math.multiply(tensor1, tensor2)는 이를 인수로 받아 다른 텐서(즉, 42)와 곱하기 전에 자동으로 텐서로 변환합니다. tensor1tensor는 동일한 유형이어야 합니다.

이제 명시적인 변환 방법을 살펴보겠습니다. 텐서에서 호출하려면 .numpy() 함수를 사용해야 합니다.

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

위의 코드에서 a는 텐서 a를 NumPy 배열로 변환하는 내장 .numpy() 함수를 호출하는 상수 텐서입니다.

위의 결과는 다음과 같습니다.

numpy.ndarray

TensorFlow에서 즉시 실행은 배후에서 시각적 그래프를 작성하지 않고 다양한 텐서 작업의 빠른 실행을 지원하는 환경입니다.

기본적으로 TensorFlow에서 즉시 실행이 활성화됩니다. 하지만 구현 중에 비활성화하면 텐서를 NumPy 배열로 변환할 수 없습니다.

이 경우 아래 코드가 표시됩니다.

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

페이지를 방문하여 TensorFlow와 NumPy 간의 더 많은 상호 관련 작업을 확인할 수 있습니다.