본문 바로가기

STUDY/인공지능

TensorFlow의 설치 및 기본적인 operations

오늘의 TensorFlow를 설치하고 기본적인 예제를 실습해보자.

 

TensorFlow 란?


구글에서 만든 open-source software libaray for Machine Intelligence 이다.

 

이미지 출처: https://www.tensorflow.org/

 

그렇다면, 머신러닝과 관련된 다양한 오픈소스 라이브러리들이 있을텐데 

왜 우리는 이 시점에 TensorFlow를 쓰는가? 그 이유는 간단하다.

이미지 출처: https://twitter.com/fchollet/status/830499993450450944

한 트위터가 다양한 딥러닝 관련 라이브러리의 깃허브에서 인기도를 나타낸 그래프이다.

TensorFlow가 압도적이다.

이는 현 시점에 TensorFlow를 사람들이 가장 많이 사용하고 있으며,

다르게 말해서 뭔가 궁금하거나 문제가 생겨서 검색을 했을 때 많은 자료를 찾을 수 있다는 의미이다.

 

* TensorFlow

- TensorFlow is an open source software library for numberical computation using data flow graphs.

- Python.

 

 

* Data Flow Graph

- Nodes in the graph represent mathematical operations.

- Edges represent the multidimensional data arrays(tensors) communicated between them.

 

이미지 출처: https://www.tensorflow.org/

 

TensorFlow 설치


TensorFlow의 설치는 크게 2가지 단계로 나눠진다.

1) Anaconda 설치

2) TensorFlow 설치

 

1. Anaconda 설치하기

TensorFlow를 설치하기 위해서는 기본적으로 Python이 설치가 되어 있어야 한다.

하지만, 그냥 파이썬만 설치하는 것보다 머신러닝 라이브러리인 sklearn(scikit-learn, 사이킷런)을 포함해 다양한 패키지들을 포함해 한번에 설치되는 아나콘다를 설치해야 머신러닝 하기가 편하다.

 

python과 아나콘다의 관계

위의 그림과 같이, Anaconda는 python을 포함하면서 추가적인 패키지들도 함께 포함하고 있다.

주의) 현재 나온 tensorflow 1.1 버전이 파이썬 3.5까지만 지원하는데

아나콘다 4.3.0 이후 버전은 파이썬 3.6을 포함하고 있다.

즉, TensorFlow를 설치하려면 아나콘다 4.2가 필요하다. 

 

https://repo.continuum.io/archive/index.html

 

Anaconda installer archive

 

repo.continuum.io

아니콘다는 여기서 다운받을 수 있으며,

window의 경우 아래에 빨간 네모친 부분을 클릭하여 다운받으면 된다.

 

 

 

설치화면에서는 Next 버튼을 계속 눌러서 설치를 진행하면 된다.

 

Anaconda 설치와 동시에 Jupyter Notebook, Spyder 등이 함께 깔린 것을 확인할 수 있다.

이 중 파이썬을 실행하기 위해서는 Anaconda Prompt를 실행한다.

실행하면 커맨드 창이 뜬다.

 

다음과 같이 python 3.5.2가 설치된 것을 확인할 수 있다.(python 3.6은 안된다.)

 

2. TensorFlow 설치

파이썬에는 리눅스와 유사하게 패키지나 라이브러리를 pip를 통해서 설치한다.

이제 TensorFlow라는 패키지를 설치해야하는데,

아나콘다를 통해 가상환경을 실행시키고 이 위에 TensorFlow를 설치한다.

이는 라이브러리 및 패키지의 버전관리를 위함이다.

만약 같은 라이브러리가 다른 버전으로 2개가 설치되었다면, 이들은 충돌을 일으킬 수 있는데

이 때 가상환경을 위에 각 라이브러리들을 설치하면 이러한 문제를 해결할 수 있기 때문이다.

 

Anaconda prompt를 관리자 모드로 실행시킨 후 다음 명령어를 입력한다.

중간에 Proceed([y]/n)? 이 나오면 엔터를 치면된다.

python -m pip install --upgrade pip
conda create -n tensorflow python=3.5
activate tensorflow
pip install tensorflow

 

가상환경 'tensorflow'를 만들고 실행시킨 후 tensorflow를 설치한다.

이제부터 (tensorflow) 환경에서 설치하는 모든 패키지들은 "C:\Program Files\Anaconda3\envs\tensorflow" 아래에 별도로 설치가 되고 관리된다.

 

성공적으로 모든 설치가 끝났다.

 

TensorFlow 기본 예제 실습


이제 설치가 끝난 TensorFlow를 통해 기본 예제를 실습해보자.

 

python
import tensorflow as tf
tf.__version__

'tensorflow'라는 가상환경 위에서 python을 실행시킨 후 tensorflow를 import 한다.

tensorflow의 버전을 확인하기 위해 위와 같은 코드를 작성한다.

1.14.0 버전임을 확인할 수 있다.

 

import tensorflow as tf

# Create a constant op
# This op is added as a node to the default graph
hello = tf.constant("Hello, TensorFlow!")

# Start a TF session
sess = tf.Session()

# Run the op and get result
print(sess.run(hello))

 

이 코드를 작성할 때, 이러한 오류가 뜨는 경우가 있는데 무시하면 된다.

 

I tensorflow/core/platform/cpu_feature_guard.cc:142] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2

 

혹시나 이유가 궁금한 분은 구글링하면 금방 관련된 글들을 찾을 수 있을 것이다.

 

import tensorflow as tf

node1 = tf.constant(3.0, tf.float32)
node2 = tf.constant(4.0)
node3 = tf.add(nod1,nod2)

print("node1: ", node1, "node2: ", node2)
print("node3: ", node3) # node3 is zero

sess = tf.Session()
print("sess.run(node1, node2): ", sess.run([node1, node2]))
prnit("sess.run(node3): ", sess.run(node3))

중간에 print node1, node2, node3를 해보면 값이 제대로 안나온다는 것을 확인할 수 있는데

이는 sess를 run해주지 않았기 때문이다.

 

위 프로그램의 동작을 모식화 시켜 나타내면 위와 같다.

 

import tensorflow as tf

a = tf.placeholder(tf.float32)
b = tf.placeholder(tf.float32)
adder_node = a + b

print(sess.run(adder_node, feed_dict = {a: 3, b: 4.5}))
print(sess.run(adder_node, feed_dict = {a: [1,3], b: [2,4]}))

마찬가지로 위 프로그램의 동작을 모식화 시켜 나타내면 위와 같다.

 

Tensor Ranks, Shapes, and Types


tensor에서 Rank, Shpae, Type의 개념은 다음과 같다. 

 

이미지 출처: https://www.tensorflow.org/programmers_guide/dims_types
이미지 출처: https://www.tensorflow.org/programmers_guide/dims_types
이미지 출처: https://www.tensorflow.org/programmers_guide/dims_types

마무리


이번 주부터 본격적으로 졸업과제가 시작되었다.

딥러닝 공부의 많은 부분을 유투브 강의 '모두의 딥러닝 - 시즌1'을 참고하고 있는데 큰 도움이 되고있다.

열심히 해서 딥러닝 전문가가 되자.

'STUDY > 인공지능' 카테고리의 다른 글

[Coursera / ML] 01_Introduction  (0) 2019.12.05
Machine Learning Basic  (0) 2019.06.24