텐서플로 기초

딥러닝과 텐서플로의 기초를 다룹니다


수강중

1. 텐서플로 소개

동영상이 없는 텍스트 강의 자료입니다.

텐서플로는 구글에서 개발한 머신 러닝과 딥러닝을 위한 라이브러리입니다.

텐서플로 설치

텐서플로 설치는 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>

목차