본문 바로가기

머신러닝 읽어주는 남자

[Tensorflow 101 - 인트로] 텐서플로우 시작을 위한 기초 및 기본상식

반응형

이번 글은 이미 머신러닝은 안다는 기준에서 텐서플로우(Tensorflow)만을 설명하려고 합니다.

 

이번에는 텐서프로우를 할려면 꼭 알아야 하는 개념과 용어를 설명하려고 합니다.

 

1. 텐서 (Tensor)

스칼라, 벡터, 메트릭스 모든 것을 포괄하는 모든 정보를 의미합니다.

텐서는 중요한 개념인 Rank와 shape 있습니다.

 

Rank는 바로 텐서의 Dimension이라고 생각하면 됩니다.

 

Rank = 0 이면 스칼라

7 (shape: [])

 

Rank = 1 이면 벡터 

[5, 7, 8] (shape: [3])

 

Rank = 2이면 행렬

[ [1,2,3],

  [4,5,6],

  [7,8,9]]

(shape: [3,3])

 

Rank > 2이면 그냥 다차원 텐서입니다.

ex)

[ [ [1,2,3],[4,5,6] ],

  [[7,8,9],[10,11,12]]

(shape: [2,2,3])

 

2. Placeholder

나중에 입력값을 받을 곳입니다.

쉽게 말하면 데이터가 들어갈 곳입니다.

tf.placeholder(tf.float32, [3])

 

3. Variable

나중에 학습이 될 파라미터를 의미합니다.

트레이닝시에 조금씩 업데이트면되면 완성된 값입니다.

tf.Variable(tf.random_normal([1,2]])

 

4. Epoch

모든 트레이닝 데이터를 한바퀴 돌았다는 의미 입니다.

보통 업데이트시 모든 데이터로 한번에 업데이트를 하지않고 batch라는 일정 사이즈의 데이터로 업뎃을 하게됩니다.

batch 크기가 100이고 100,000개의 데이터가 있다면 1000번을 업뎃하면 1 epoch이 완료 됩니다.

 

4. 기본 작동 방식

일반 우리가 아는 프로그램

1+2

 

라고 연산을 하게 되면 바로 아래와 같은 결과가 나옵니다.

 

3

 

반면에 텐서플로우는 이렇게 바로 돌아가는게 아니라

 

그래프 생성 + 그래프 실행

 

으로 구성 되게 됩니다.

a = tf.constant(1)
b = tf.constant(2)
result = a+b
print(result)

를 하면 위와 처럼 3이 출력되지 않고 아래와 같은 텐서 값이 나옵니다 .

 

Tensor("Add:0", shape=(), dtype=int32)

 

이를 실행을 원하면 아래와 같이 session을 통해서 그래프를 실행하게 됩니다.

sess = tf.Session()
sess.run(result)
반응형