본문 바로가기

Data Science

파이썬 머신러닝 스터디 모두의 딥러닝 computational graph | sTricky

파이썬 머신러닝 스터디  모두의 딥러닝 computational graph | sTricky

파이썬 머신러닝 스터디  모두의 딥러닝 computational graph sTricky

안녕하세요.
오늘부터 파이썬 머신러닝 스터디를 시작합니다.
그 첫시간으로 우선, 제 맥북에 파이썬 가상환경을 설치 하고, 이어서 tensorflow를 설치 했습니다.

강의는 너무나 유명한 머신러닝 강의죠. 모두의 딥러닝 유튜브를 보면서 진행 하겠습니다.
그 첫 시간으로 computational graph에 대한 정리를 이곳에 하겠습니다.
그럼 시작 해보겠습니다.

Tensorflow란?

텐서플로란 데이터 플로어라는 그래프를 사용하여 numerical한 계산을 할 수 있는 라이브러리 입니다.
여기서 데이터 플로어 그래프란, 각 노드와 노드간의 연결선을 이야기 합니다.
각 노드는 어떤 고유의 오퍼레이션을 가지는데, 데이터들이 흘러서 어떤 노드로 들어오면 각 노드에 정의된 오퍼레이션이 흘러들어온 데이터를 가지고 실행이 되게 됩니다. 그런 노드와 데이터들이 유기적으로 엣지를 통해서 연결된것을 데이터 플로어 그래프라고 합니다.

그리고, 여기서 엣지를 통해 노드로 들어오는것을 텐서(Tensor)라고 하게 되는것이죠.

TensorFlow란?

Tensorflow 설치

 

 

 

아마 TensorFlow의 설치는 다양한 관련 자료가 이미 있습니다.
간단하게 파이썬 코드로 대체하고 넘어 가도록 하겠습니다.

pip install --upgrade tensorflow

#위 코드로 설치 후 아래 코드로 잘 설치가 되었는지 확인을 합니다.
import tensorflow as tf
tf.__version__

참고로, 아직 파이썬에서 라이브러리를 설치하고 사용하는데 익숙하지 않으신 분들은 아래 포스트를 참고 하시면 좋으실것 같습니다.

2021/01/08 - [python 기초강의] - 머신러닝을 공부 하기 위한 최소한의 파이썬 문법 시리즈 #1

 

머신러닝을 공부 하기 위한 최소한의 파이썬 문법 시리즈 #1

머신러닝을 공부 하기 위한 최소한의 파이썬 문법 시리즈 #1 안녕하세요. 머신러닝을 공부하기 앞서, 다들 파이썬에 대해서 많은 관심이 있으실겁니다. 그러닌깐, 지금 이 글도 보고 계시겠죠?

stricky.tistory.com

Computation Graph 실습

Computation이란 연산을 뜻하죠.
말그대로 Computation Graph란 연산 그래프를 말하는데, 여기 아래 더하기를 하는 간단한 Computation Graph 예제 코드를 파이썬의 TensorFlow를 사용해서 작성 해보았습니다.

물론, 기본적인 코드들은 <모두의 딥러닝>에서 나온것이나, 강의 자료가 좀 시간이 지나서 그런지, 일부 코드가 실행되지 않아서 댓글에 남겨진 수정된 코드를 공유받아서 작성 했습니다.

# Info 로그를 필터링하려면 1, Warning 로그는 2, Error 로그는 3
import os
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'
 
import tensorflow as tf
 
# 앞쪽 레이어의 노드 빌드하기
node1 = tf.constant(7.0, tf.float32)
node2 = tf.constant(2.0, tf.float32)
 
# 뒷쪽 레이어의 노드(즉 node3)를 함수로 정의하기
@tf.function
def forward() :
    return node1 + node2
 
# 그래프를 실행시키고 output을 확인해보기
out_node = forward()
print(out_node)

자, 위 코드를 간단하게 설명드리자면 node1, node2를 더한 값을 출력하는 간단한 연산 그래프 모듈 입니다.
그리고 중간에 보시면 node1 = tf.constant(7.0, tf.float32) 라인이 보이실 겁니다.
여기서 tf란 tensorflow를 이야기 하고, constant란 tensorflow안에 있는 상수를 선언할수 있는 함수를 이야기 합니다. 그럼 여기서는 node1이라는 변수에 tensorflow의 constant 함수를 사용하여 7.0이라는 소수를 선언 하였다는 의미가 되겠죠.

그 뒤로는 아주 평범한 파이썬 코드 입니다.
forwad라는 함수를 선언 하고 forword 함수는 node1 과 node2를 더한 값을 리턴 하기 때문이죠.
그리고 out_node에 forward 함수를 정의 해줍니다. 마지막으로 출력을 합니다.
결과를 한번 보실께요.

Computation Graph

Tensor의 Rank란?

 

 

 

Tensor에는 Rank라는 개념이 있습니다.
Tensor에서의 Rank는 Tensor의 배열의 차원을  표현하는 크기 입니다. 즉, 어떤 Tensor의 Rank가 1이면 1차원 배열이고, Rank가 3이면 3차원 배열이라는 의미인것 이죠.

Tensor의 Rank

Tensor의 Shape란?

Tensor에서 Shape가 의미 하는것은 Tensor에 속한 배열의 엘리멘트가 몇개의 요소로 이루어져있는지를 나타내는 것 입니다. 만약 Tensor의 Shape가 [5]이라면 5개의 엘리멘트로 이루어진 배열을 뜻 합니다. 아래 그림을 참고 해 보시길 바랍니다.

Tensor의 Shape

Tensor의 Type란?

 

 

 

Tensor의 Type은 데이터 타입을 이야기 합니다. 어떤 타입의 숫자인지, 실수인지 정수인지, 내지는 그 길이를 정의 합니다.
뭐, 매우 간단하죠.
아래 사진을 참고 해보겠습니다.

Tensor의 Type

머신러닝의 첫 수업을 정리 해보았습니다.
앞으로 더 많이 어려워 지겠지만, 훨씬 더 말이죠.
그래도 하는데까지 열심히 해보겠습니다.
감사합니다!

# 다음편 보러가기

2021/01/17 - [Data Science] - 파이썬 머신러닝 linear regression과 supervised learning (모두의 딥러닝) | sTricky

 

파이썬 머신러닝 linear regression과 supervised learning (모두의 딥러닝) | sTricky

파이썬 머신러닝 linear regression과 supervised learning (모두의 딥러닝) | sTricky 오늘은 머신러닝 학습 두번째 시간 입니다. 오늘은 Supervised Learning에 대해서 공부를 해보겠습니다. 이번 공부도 역시..

stricky.tistory.com

by.sTricky