본문 바로가기

딥러닝/TensorFlow

텐서플로우 시작하기

시작하기 전에...

 

텐서플로우는 다양한 작업에대해 데이터 흐름 프로그래밍을 위한 오픈소스 소프트웨어 라이브러리이다. (위키 백과)

 

물론 다른 기능도 지원하겠지만 인공신경망 분야에서 기계 학습을 하는 입장에서 사용함을 가정하고 포스팅을 시작한다.

 

텐서플로우의 설치부터 자세한 documentation을 확인하고 싶다면 아래 링크를 참고하길 바람.

 

https://tensorflowkorea.gitbooks.io/tensorflow-kr/content/g3doc/get_started/os_setup.html

 

다운로드 및 설치 · 텐서플로우 문서 한글 번역본

No results matching ""

tensorflowkorea.gitbooks.io

내 OS에 이미 아나콘다가 설치되어있기 때문에 anaconda3 를 중점으로 포스팅하겠다.

 

설치되어야 하는 것

 

- Windows

- anaconda

- Tensorflow

- python

- CUDA

https://developer.nvidia.com/cuda-downloads

- cuDNN

https://developer.nvidia.com/cudnn

 

 

1. 준비

CUDA와 cuDNN을 설치하기 전에, 두 라이브러리의 버전을 호환되는 버전으로 짝지어야 한다.

 

예를 들어, 텐서플로우 2.2.0 버전은 CUDA 10.1 버전을 사용하고, CUDA 10.1 버전과 호환되는 cuDNN은 7.6.5 버전이다.

 

호환되는 버전의 라이브러리를 다운받지 않으면 제대로 실행되지 않는다.

 

cuDNN을 다운받은 후 압축을 풀고, 그 아래의 /cuda/ 내 파일들을 복사하여 설치한 CUDA의 폴더 아래에 복사한다.

 

CUDA 라이브러리의 기본 위치는 다음과 같다.

C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\<version>

 

 

2. 설치

anaconda에서 다음 명령문으로 가상환경을 만든다.

$ conda create -n tensorflow python=3.5

나는 파이썬 버전은 그냥 document에서 추천한 것 중 그냥 3.5버전을 채택했다.

 

위의 tensorflow는 패키지 이름이 아니라 가상환경의 이름으로써 설정한 것이므로 원하는 대로 만들면 됨

 

$ conda activate tensorflow

위 실행문으로 사용 환경을 위에서 생성한 것으로 설정한다.

 

$ pip install tensorflow

그리고 해당 환경에 텐서플로우 설치.

 

최신 버전은 CPU 버전과 GPU 버전이 통합되어있으므로 CPU만 사용하고 싶다면

 

tensorflow-cpu를 설치하면 된다.

 

 

3. TEST

기본적으로 파이썬을 실행할 수 있는 IDE가 있으면 좋다.

 

나의 경우에는 pycharm을 사용하였다.

 

다만 pycharm에서 anaconda의 사용 환경을 끌어다가 사용하기 위해서 프로젝트 생성 시 설정이 필요하다.

 

하단의 링크 참고.

 

https://bradbury.tistory.com/63

 

파이참(PyCharm) 설치 및 아나콘다 가상환경 적용

파이참(PyCharm) - 파이썬 개발에 가장 널리 사용되는 통합 개발 환경(IDE, Integrated Development Environment) - Professional 버전과 Community 버전이 있는데 Community 버전은 무료로 사용할 수 있다. PyCh..

bradbury.tistory.com

import tensorflow as tf

# 1x2 행렬을 만드는 constant op을 만들어 봅시다.
# 이 op는 default graph에 노드로 들어갈 것입니다.
# Create a constant op that produces a 1x2 matrix.  The op is
# added as a node to the default graph.
#
# 생성함수에서 나온 값은 constant op의 결과값입니다.
# The value returned by the constructor represents the output
# of the constant op.
matrix1 = tf.constant([[3., 3.]])

# 2x1 행렬을 만드는 constant op을 만들어봅시다.
# Create another Constant that produces a 2x1 matrix.
matrix2 = tf.constant([[2.], [2.]])

# 'matrix1'과 'matrix2를 입력값으로 하는 Matmul op(역자 주: 행렬곱 op)을
# 만들어 봅시다.
# 이 op의 결과값인 'product'는 행렬곱의 결과를 의미합니다.
# Create a Matmul op that takes 'matrix1' and 'matrix2' as inputs.
# The returned value, 'product', represents the result of the matrix
# multiplication.
product = tf.matmul(matrix1, matrix2)

print(product)

위의 코드를 복사해서 test.py에 붙여넣고 컴파일해보자.

 

cuda의 dll들이 잘 로드되면 된 것이다.

 

I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library cudart64_101.dll