안녕하세요.
머신러닝 이론을 학습하면서 동시에 텐서플로우 실습을 진행합니다.
전반적인 이야기는 머신러닝 첫번째 포스트에서 확인하시면 되겠습니다.
먼저 이번 포스팅에서는 텐서플로우의 설치와 간단한 이용에 대해서 설명하도록 하겠습니다.
* 해당 포스트의 모든 내용은 김성훈 교수님의 '모두를 위한 딥러닝'을 바탕으로 제작되었습니다.
관련한 상세 내용은 아래 링크를 참고해주세요.
1. 텐서플로우(TensorFlow)란?
아주 간단하게나마 텐서플로우(TensorFlow)를 알아보면 다음과 같습니다.
Tensor Flow란 data flow graphs를 사용해서 numerical computation을 하는 것입니다.
또한 많은이가 사용하는 python을 기반으로 합니다.
그럼 이때 말하는 data flow graphs란 무엇일까요?
각각의 노드에는 operations으로 표현되고, 각각의 엣지들은 data arrays로 표현됩니다.
그리고 이러한 노드와 엣지들을 통해서 내가 원하는 연산을 하고 결과를 얻을 수 있습니다.
2. 윈도우에서 텐서플로우 설치하기
먼저 이런 텐서플로우설치 방법은 개인의 OS에 따라서 다를 수 있습니다.
윈도우에서 학습중이신 분들은 아래 방법을 따라하시면 되겠습니다.
먼저 텐서플로우를 사용하기 위해 파이썬과 아나콘다가 설치되어야 합니다.
파이썬과 아나콘다는 공식홈페이지에서 쉽게 다운로드 하실수 있기 때문에 생략하도록 하겠습니다
먼저, 아나콘다를 실행시키고 pip를 업그레이드 합니다.
python -m pip install --upgrade pip
그리고 텐서플로우를 사용하기 위한 Conda 가상환경을 만듭니다.
conda create -n tensorflow python=3.5
그리고 만들어진 가상환경을 실행합니다.
activate tensorflow
그러면 프롬프트가 'tensorflow'로 바뀐 것을 확인하실 수 있습니다.
해당 가상환경에 텐서플로우를 설치합니다.
pip install tensorflow
이제 해당 가상환경에서 텐서플로우를 활용합니다.
설치가 정상적으로 이루어졌는지 확인하기 위해 python터미널을 열도록 합니다.
(tensorflow) > python
그리고 아래와 같은 코드를 입력하여 텐서플로우의 구동을 확인합니다.
위의 코드들이 오류없이 작동한다면 텐서플로우가 정상적으로 설치된 것입니다.
3. 텐서플로우 사용해보기
저희가 본격적으로 텐서플로우를 실습하기전에 간단하게 나마 사용을 해보도록 하겠습니다.
먼저 아래 사진을 통해 코드를 확인합니다.
먼저 node1, node2, node3 을 만들었습니다.
node1 = tf.constant(3.0, tf.float32)
에서 먼저 맨 뒤의 tf.float32 는 자료형을 말합니다.
즉, node1 이란 것은 32bit float형으로 만들어진 3.0의 상수값을 말합니다.
node2 또한 동일합니다.
그리고 node3 은 node1과 node2 를 더하는 노드입니다.
그리고 결과를 확인하기 위해
print("result : ", node3)
을 입력하니 오류가 발생합니다. 오류의 원인으로는 node3이 어떤 값이 아니라 노드이기 때문입니다.
즉, node3은 operation으로써 존재합니다.
따라서 올바른 결과를 확인하기 위해
print("result: "m sess.run(node3))
를 입력해야 합니다.
하지만, 이러한 방법은 node1과 node2에 항상 미리 값을 넣어줘야만 합니다.
이와 다른 방법으로는 무엇이 있을까요?
다음의 코드는 a, b 노드에 미리 값을 넣지 않고 나중에 값을 넣으면서 덧셈 값을 출력합니다.
a와 b 노드를 만들때 constant가 아닌 placeholder로 만들면서 데이터의 타입만 설정해 줍니다.
그리고 출력시에 feed_dice= 를 통해서 각각의 노드에 알맞은 값을 넣어주면 됩니다.
지금 코드가 정확히 이해가 가지 않더라도 너무 힘들어 하지 마시고 천천히 따라오시면 됩니다.
아래 그림에서 전체적인 과정을 확인하겠습니다.
우리가 위에서 코드로 간략하게나마 사용해본 텐서플로우는 위의 그림에서 나타내주고 있습니다.
1. 텐서플로우 operations을 사용한 그래프를 만듭니다. 즉 노드와 엣지를 통해서 그래프를 만들어 냅니다.
2. operations을 실행시킵니다. 이때, placeholder에 알맞은 값 또한 함께 입력합니다.
3. 그래프를 통해 업데이트 된 변수의 값을 확인합니다.
생각보다 간단하죠?
노드와 엣지를 통해 그래프를 만들고 그러한 그래프들간의 flow로 구동되는 것을 꼭 기억하세요.
그럼 다음 포스팅에서는 실제로 머신러닝에서 사용되는 Linear regression을 텐서플로우로 만들어보도록 하겠습니다.
'AI & BigData > 모두를 위한 딥러닝(정리)' 카테고리의 다른 글
텐서플로우(Tensor Flow) #3_ Linear Regression의 Cost 최소화 하기 (0) | 2018.02.27 |
---|---|
머신러닝(ML) #3_ Linear Regression에서 Cost Function 최소화 하기 (0) | 2018.02.22 |
텐서플로우(Tensor Flow) #2_ 간단한 Linear Regression 구현하기 (0) | 2018.02.22 |
머신러닝(ML) #2_ Linear Regression(선형 회귀) (0) | 2018.02.22 |
머신러닝(ML) #1_ 모두를 위한 딥러닝 (3) | 2018.01.26 |