텐서플로 소개
텐서플로는 구글에서 개발한 머신 러닝과 딥러닝을 위한 라이브러리입니다.
텐서플로 설치
텐서플로 설치는 pip
를 통해 간단히 할 수 있습니다.
!pip install tensorflow
Colab
구글의 Colab 서비스를 사용하면 파이썬이나 텐서플로를 설치하지 않고 원격에서 코딩을 할 수 있습니다. 현재는 Colab의 텐서플로 기본 버전이 1.x이기 때문에 다음 코드를 실행하여 2.x로 변경해주시면 됩니다. PC 등에서는 아래 코드를 실행하더라도 아무 영향이 없습니다.
try:
%tensorflow_version 2.x
except:
pass
텐서플로 불러오기
텐서플로는 아래와 같이 불러올 수 있습니다.
import tensorflow as tf
이 강의는 텐서플로 2.x 버전을 기준으로 만들어져 있습니다. 아래와 같이 입력하여 버전을 확인해봅시다. __version__
에서 밑줄(_
)이 앞뒤로 2개씩 붙어 있는 점에 주의하세요.
tf.__version__
'2.0.0'
텐서
텐서플로에서 텐서(tensor)란 간단히 말하면 여러 개의 수를 모아놓은 것입니다. 배열, 행렬, 벡터 등등과 비슷한 개념입니다. 다음과 같이 간단한 텐서를 만들어보겠습니다.
x = tf.Variable([1.0, 2.0, 3.0])
위의 텐서는 길이가 3인 텐서입니다.
x.shape
TensorShape([3])
텐서는 numpy
의 배열(array)과 밀접한 관련이 있습니다. 다음과 같이 텐서를 numpy
배열로 바꿀 수 있습니다.
x.numpy()
array([1., 2., 3.], dtype=float32)
계산
텐서는 여러 가지 수학 계산을 할 수 있습니다. 두 개의 텐서를 더하면 같은 위치에 있는 원소들끼리 더해집니다. 뺄셈, 곱셈, 나눗셈 등등도 모두 같습니다.
x + x
<tf.Tensor: id=33, shape=(3,), dtype=float32, numpy=array([2., 4., 6.], dtype=float32)>
만약 텐서에 하나의 수를 더하면, 텐서의 모든 원소에 같은 수를 더하게 됩니다. 뺄셈, 곱셈, 나눗셈 등등도 모두 같습니다.
x + 1
<tf.Tensor: id=36, shape=(3,), dtype=float32, numpy=array([2., 3., 4.], dtype=float32)>
제곱근, 로그 등 여러 가지 수학 계산도 가능합니다. 아래는 텐서 x
의 모든 원소에 양의 제곱근(루트)을 구한 것입니다.
tf.sqrt(x)
<tf.Tensor: id=38, shape=(3,), dtype=float32, numpy=array([1. , 1.4142135, 1.7320508], dtype=float32)>
합계 등의 통계 계산도 가능합니다. 아래는 x
의 합계를 구한 것입니다.
tf.reduce_sum(x)
<tf.Tensor: id=45, shape=(), dtype=float32, numpy=6.0>