텐서플로(Tensorflow) 사용법 #1 [Docker 환경에서의 설치]

 

Tensorflow는 Google에서 개발한 딥러닝 모델을 개발하고 학습하는 프레임워크입니다. Tensorflow와 각종 딥러닝 라이브러리 (ex: matplotlib, numpy, scikit-learn)를 활용하기 위해선 Python 개발 환경이 준비되어야 하는데요.

 

pip을 통해 필요한 패키지를 개별적으로 설치할 수도 있겠지만은, 최근에는 Anaconda 또는 Docker를 활용하여 딥러닝 환경을 빠르게 구축하고 개발을 용이하게 할 수 있습니다. 이번 포스트에서는 Docker 이미지를 통해 Tensorflow 환경을 구축하는 내용을 다루고자 합니다.

 

Docker 설치

 

1. Docker Windows 배포판은 아래 주소에서 받을 수 있습니다.

▶▶ https://docs.docker.com/docker-for-windows/install/

 

Install Docker Desktop on Windows

 

docs.docker.com

 

 

2. 설치 파일을 내려받은 즉시 실행시켜보도록 하겠습니다. 설치가 끝나면 바탕화면에 Docker 바로 가기 아이콘을 클릭하여 GUI 창을 띄우도록 합니다. 

 

 

Tensorflow 이미지 다운로드 및 Docker 실행

 

다음으로 해야 할 작업은 Tensorflow docker 이미지를 로컬 컴퓨터에 내려받는 것입니다.

1. 작업 표시줄 ▶ 명령 프롬프트 (관리자 권한으로 실행)를 실행시켜 아래 명령어를 입력하여 Tensorflow 이미지를 다운로드 받습니다.

 

docker pull tensorflow/tensorflow

 

 

2. 다시 Docker GUI로 돌아와서 좌측 'Images' 탭을 선택합니다. 화면 상에서 방금 설치한 Tensorflow 이미지를 확인할 수 있습니다.우측에 있는 RUN ▶ 버튼을 클릭하여 컨테이너를 실행시킵니다.

 

 

 

3. 좌측 'Containers/Apps' 탭을 선택한 뒤, 우측에 나타난 컨테이너를 클릭합니다.

 

 

 

4. 우측 상단에 있는 버튼 중 'CLI' 를 클릭하면 터미널이 생성되는데요. 생성된 터미널에서 딥러닝 학습을 위한 Python 코드를 돌려볼 수 있습니다.

  

 

 

Tensorflow 동작 확인

 

마지막으로, 간단한 딥러닝 실습을 통해 컨테이너에서 Tensorflow가 원활하게 동작하는지 확인해보도록 하겠습니다. 현재 설치된 Python 라이브러리를 체크해보면 Tensorflow와 Numpy가 설치되어 있음을 알 수 있습니다.

pip list

 

 

 

1. Python을 실행해서 Tensorflow를 활용해보겠습니다. 먼저 프로그램에 텐서플로 라이브러리를 임포트합니다.

 

import tensorflow as tf

 

 

 

2. 테스트용으로 MNIST 데이터셋을 불러옵니다.

mnist = tf.keras.datasets.mnist	# MNIST 데이터셋 

(x_train, y_train), (x_test, y_test) = mnist.load_data() # 데이터셋 불러오기
x_train, x_test = x_train / 255.0, x_test / 255.0 # 데이터 정규화

 

 

 

3. 불러온 데이터를 학습할 모델을 생성합니다.

model = tf.keras.models.Sequential([             # 모델 (fully-connected) 생성
  tf.keras.layers.Flatten(input_shape=(28, 28)),
  tf.keras.layers.Dense(128, activation='relu'),
  tf.keras.layers.Dropout(0.2),
  tf.keras.layers.Dense(10, activation='softmax')
])

model.compile(optimizer='adam',                       # 모델 컴파일 (옵티마이저, 손실함수, 평가 메트릭 설정)
              loss='sparse_categorical_crossentropy',
              metrics=['accuracy'])

 

 

 

생성한 모델을 학습시켜봅니다.

model.fit(x_train, y_train, epochs=5)		# 모델 학습
model.evaluate(x_test,  y_test, verbose=2)	# 테스트 데이터에 대해 검증

 

반응형