본문 바로가기

Learn/TensorFlow

TensorFlow 학습 #5 텐서플로우 연산구조

반응형

2020/09/04 - [Learn/TensorFlow] - TensorFlow 학습 #4 - 설치 및 실행

 

TensorFlow 학습 #4 - 설치 및 실행

2020/08/26 - [Learn/TensorFlow] - TensorFlow 학습 #3 - 머신 러닝 TensorFlow 학습 #3 - 머신 러닝 2020/08/26 - [Learn/TensorFlow] - TensorFlow 학습 #2 빅 데이터 간단 학습 TensorFlow 학습 #2 빅 데이터..

javart.tistory.com

 

정말 잘 정리된 이 있으니 참조하길 바란다.

물론 당연히 공식 매뉴얼도 있다.

tf.Tensor에 대한 매뉴얼도 있으니 보기 바람

 


TensorFlow

연산구조

 

Tensor

 텐서플로우 프로그램을 작성할 때, tf.Tensfor를 주로 조작하고 전달하게 된다. tf.Tensor 객체는 부분적으로 정의된 연산으로 표현되고 이것은 결국 값으로 변환된다. 텐서플로우 프로글매은 tf.Tensor 객체 그래프를 만드는 것으로 먼저 시작하고, 각각의 텐서가 다른 텐서를 기반으로 어떤 식으로 계산될 수 있는지 구체화하고, 그 다음 그래프를 실행해서 원하는 결과를 얻게 된다.

 

 위 글은 공식 매뉴얼에 적힌 내용이다. 읽어보면 알 수 있듯이 텐서플로우는 그래프 연산을 한다. 기존의 일반 프로그래밍에서의 산수 방식과는 다르다는 것을 알고서 학습에 들어가야 한다.

 

 또, 텐서플로우라는 이름을 보면 알 수 있듯이 텐서를 포함한 계산을 정의하고 실행하는 프레임워크가 텐서플로우를 정의하는 말이다. 

 

 텐서(tensor)는 벡터와 행렬을 일반화한 것이며, 고차원으로 확장 가능하다. 내부적으로 텐서플로는 기본적으로 제공되는 자료형을 사용해 n-차원 배열로 나타내게 된다.

 

랭크

텐서의 랭크별 의미

 위 사진을 보면 알 수 있듯이, 랭크는 차원을 의미한다. 자세한 부분을 알고 싶으면 공식매뉴얼을 살펴보라


그래프(Graph)

 텐서플로우는 그래프(공식매뉴얼)를 이용해 연산한다고 했다. 그래프에 대한 기초적 내용은 이 글을 참조하면 좋을 것 같다.

그래프는 기본적으로 노드(node)와 간선(edge)로 이루어져 있다. 텐서플로에서 이 둘을의 의미는 다음과 같다. 

- node : 상수형 텐서, 변수형 텐서, 연산 등

- 간선 : 노드로부터 나오는 데이터인 텐서 자료형

 

상수와 연산은 노드로


세션(Session)

 비록 PHP를 예시로 했지만 세션 자체에 대한 예시를 참조하는 것도 좋을 것 같다. 

 세션은 Theano의 함수(Function)와 비슷한 역할을 하며 실제로 계산 그래프를 생성하고 값을 계산하기 위한 환경을 제공한다. 

 

 세션이 존재하는 이유는 그래프에서 노드는 상수, 변수, 연산 등이었고 간선은 노드에서 나온 데이터인 것으로 배웠다. 따라서 세션은 각 그래프 간의 흐름을 제어하며 결과를 도출하도록 도와주는 것으로 알 수 있다. 텐서플로우 1.0 버전 때의 기본적인 사용법은 다음과 같다.

 

- 생성 : sess = tf.Session()

- 사용 : sess.run(자료)

- 종료 : sess.close()

 

생성, 사용, 종료 삼박자가 이루어져야 제대로 사용했다 할 수 있다.

 

하지만 작성시간 때의 2.3.0 버전은 세션을 생성하고 실행하고 종료하는 과정이 축약되었다. (어쩐지 매뉴얼 찾아봐도 세션에 대한 카테고리가 없더라니)

 

예를들어 두 노드간의 출력을 하고 싶다면 다음 함수를 쓰면된다.

 : tf.print(node1, node2)

 


예제

텐서플로우 모듈 임포트

import tensorflow as tf
print('텐서플로우 모듈 불러오기 성공')

 

노드 생성과 두 노드의 출력

 

import tensorflow as tf
node1 = tf.constant(1,2,3)
node2 = tf.constant(4,5,6)
tf.print(node1, node2)

 

반응형