brunch

You can make anything
by writing

C.S.Lewis

by 서진호 Jun 11. 2020

초보자를 위한 텐서플로1 노트북

 텐서플로 1.15 버전 기준

지난번에 이어  Aymeric Damien 님의 깃허브 예제를 소개하겠습니다. 오늘은 텐서플로 1.15 버전에 대한 노트북 예제를 정리해 보겠습니다. 지난번 텐서플로2는 많은 도움이 되셨는지 궁금합니다. 


1. 선수 사항

먼저 모든 예제를 다운로드 받으려면, 다음과 같이 터미널 창에서 명령어를 실행하면 됩니다.

git clone https://github.com/aymericdamien/TensorFlow-Examples 


2. 텐서플로1 설치

텐서플로 1.X 와 텐서플로 2.X 버전 두 가지를 배타적 설치하려면 아나콘다를 먼저 설치하시고, 다음과 같이 설정해 주시고 사용하는 것이 문제를 발생하지 않고 사용할 수 있습니다. 터미널 창에서 하나씩 명령어를 실행시키세요!


conda create -n my_tensorflow1_env python=2.7

conda install tensorflow=1.15


conda 에서 가상환경을 직접 실행하려면 다음과 같이 터미널 창에서 명령어를 실행해 주세요!

mac/linux 환경 일 때,      

source activate my_tensorflow1_env


windows 환경 일 때,       

activate my_tensorflow1_env


conda 에서 가상 환경을 해제 시키려면 다음과 같이 터미널 창에서 명령어를 실행해 주세요!

mac/linux  환경일 때,     

source deactivate 


windows 환경 일 때,      

deactivate


텐서플로 2.X 버전을 설치하려면, 텐서플로 1.X 버전 설치와 비슷합니다. 터미널 창에서 먼저 conda 의 가상 환경을 만들어 주세요!


conda create -n my_tensorflow2_env python=3.5


GPU를 지원하는 시스템인지 아닌지를 파악 후에 다음과 같이 GPU를 지원하지 않으면 다음과 같이 명령어를 실행해 주십시오.

conda install tensorflow=2.2


GPU를 지원하면 다음과 같이 명령어를 실행해 주십시오.

conda install tensorflow_gpu=2.2


그외 conda 에서 가상 환경을 실행해 주는 activate 와 해제시켜 주는 deactivate 는 위와 동일합니다.


3. 텐서플로 맛보기 

아래의 녹색 글자인 notebook 클릭하면 곧바로 깃허브의 notebook 파일(ipyub)을 불러오기 때문에 네트워크 트래픽상 다소 시간이 걸릴 수 있으니 이 점을 참조하시기 바랍니다.


HelloWorld (notebook) - 텐서플로 1.X 버전에서 간단하게 "Hello, World" 를 출력하는 예제

Basic Operations (notebook) - 텐서플로 1.X 버전에서 기본적인 텐서 연산 예제.   

TensorFlow Eager API Basics (notebook) - 텐서플로의 Eagar API를 이용한 예제.


4. 기본 모델들 

Linear Regression (notebook) - 텐서플로 1.X 버전에서 선형 회귀를 구현한 예제

Linear Regression with eagar api (notebook) - 텐서플로 1.X의 Eagar API를 사용하여 선형 회귀를 구현한 예제

Logistic Regression (notebook) - 텐서플로 1.X 버전에서 로지스틱 회귀를 구현한 예제

Logistic Regression with eagar api (notebook) - 텐서플로 1.X 버전의 Eagar API를 사용하여 로지스틱 회귀를 구현한 예제

Nearest Neighbor (notebook) - 텐서플로 1.X 버전에서 최근접 이웃 탐색(Nearest Neighbor) 알고리즘을 구현한 예제

K-Means (notebook) - 텐서플로 1.X 버전에서 K-Means Classifier 생성하는 예제

Random Forest (notebook) - 텐서플로 1.X 버전에서 Random Forest Classifier 생성하는 예제

Gradient Boosted Decision Tree with GBDT (notebook) - 텐서플로 1.X 버전에서 Gradient Boosted Decision Tree (GBDT) 생성하는 예제

Word2Vec(Word Embedding) (notebook) - 텐서플로 1.X 버전에서 위키피디아 데이터로부터 워드 임베딩 모델(Word2 Vec)을 생성하는 예제

  

5. 주도 학습 딥러닝(Supervised)  

Simple Neural Network (notebook) -  간단한 신경망(멀티레이어 퍼셉트론)으로 MNIST 숫자 데이터셋을 분류해서 인식하기 위한 텐서플로 1.X 버전 예제. 원시 그대로의 텐서플로 구현. 

 Simple Neural Network(tf.layers/estimator api)(notebook) - 간단한 신경망(멀티레이어 퍼셉트론)으로 MNIST 숫자 데이터셋을 분류해서 인식하기 위한 텐서플로 1.X의 '레이어(layer)'와 'estimator' API를 사용하는 예제 

Simple Neural Network(eager api)(notebook) - TensorFlow Eagar API를 이용한 낮은 수준의 신경망(멀티레이어 퍼셉트론)으로 MNIST 숫자 데이터셋을 분류해서 인식하는 예제

Convolutional Neural Network (notebook) - 합성곱 신경망을 생성해서 MNIST 숫자 데이터셋을 분류해서 인식하는 예제. 저급 수준으로 원시 그대로의 텐서플로로 구현. 

Convolution Neural network (tf.layers/estimator api) (notebook) - 텐서플로 1.X의 '레이어(layer)'와 'estimator' API를 사용하여 합성곱 신경망을 생성해서 MNIST 숫자 데이터셋을 분류해서 인식한 예제 

Recurrent Neural Network(LSTM) (notebook) - 텐서플로 1.X 버전에서 순환적 신경망을 생성하여 MNIST 숫자 데이터셋을 분류해서 인식하는 예제 

Bi-directional Recurrent Neural Network (LSTM) (notebook) - 텐서플로 1.X 버전에서 양방향 순환적 신경망을 생성하여 MNIST 숫자 데이터셋을 분류해서 인식하는 예제 

Dynamic Recurrent Neural Network (LSTM) (notebook) -  텐서플로 1.X 버전에서 변수 길이의 시퀀스를 분류해서 동적 계산을 하는 순환적 신경망을 생성하여 인식하는 예제 


6. 비주도 학습 딥러닝(Unsupervised)  

Auto-Encoder (notebook) - 이미지를 인코딩한 자동 인코더(auto-encoder)로 더 저급 차원과 이미지를 재생성하는 예제 

Variational Auto-Encoder (notebook) - 이미지를 인코딩한 변형 자동 인코더(VAE, Variational Auto-Encoder)로 노이즈로 부터 이미지들을 생성하고 인코딩하는 예제.  

Generative Adversarial Networks(GAN) (notebook) - 적대적 생성 신경망을 이용하여 노이즈로 부터 이미지들을 생성하고 인코딩하는 예제 

DCGAN(Deep Convolutional Gnerative Adversarial Network)(notebook) - 심층 합성곱 적대적 생성 신경망을 이용하여 노이즈로부터 이미지들을 생성하는 예제   


7. 유틸리티 모음  

Save and Restore a model (notebook) - 텐서플로 1.X 버전에서 모델을 저장하고 재 저장하는 예제

Tensorboard - Graph and Loss Visualization (notebook) - 텐서보드를 사용하여 computation graph 를 시각화하고 손실 함수를 플럿(plot) 그래프로 보여주는 예제  

Tensorboard - Advanced Visualization (notebook) - 좀 더 심도 깊게 텐서보드를 사용하여 많은 변수들과 순간 기울기(gradients)들을 시각화하는 예제.   


8. 데이터 관리  

Build an image dataset (notebook) - 데이터셋 파일 또는 이미지 폴더로 부터 여러분의 자신 이미지 데이타셋을 텐서플로 데이터 큐로 생성하는 예제. 

TensorFlow Dataset API (notebook) - 입력 데이터 파이프라인을 최적화하기 위한 TensorFlow Dataset API 소개하는 예제

Load and Parse Data (notebook) - (Numpy 배열들, Images, CVS files, 제너레이터로 부터 커스텀 데이터) 등과 같은 효율적인 데이터 파이프라인 생성한 예제

Build and Load Data as TFRecords (notebook) - 데이터를 TFRecords 포맷으로 변경하고 그것을 불러오는 예제  

Image Transformation(i.e. Image Augementation) (notebook) - 다양한 이미지 증강법을 적용시키는 예제. 특히, 훈련 시 왜곡된 이미지들을 생성하는 것. 


9. 멀티 GPU  

Basic Operations on multi-GPU (notebook) - 텐서플로에서 멀티 GPU를 소개하는 간단한 예제. 

Train a Neural Network on multi-GPU (notebook) - 멀티 GPU들을 사용하여 합성곱 신경망을 훈련시키는 간단하고 명백하게 TensorFlow 로 구현하는 예제


10. PC 및 클라우드 예제 실행 

PC 데스크탑 또는 맥에서 예제들을 실행시켜 주기 위해서는 위의 제 1 장과 제 2장을 참조해 주세요. 모든 노트북 코드는 아나콘다(anaconda)를 이용하여 Jupyter Notebook를 이용하면 다운로드 받은 노트북 코드를 쉽게 실행할 수 있습니다. 그 외에는 Visual Studio Code에서 Notebook exentions을 이용해도 사용할 수 있습니다. 또한 Python 소스 코드로 변경하여 PyCharm에서도 실행할 수 있습니다. 


또한 클라우드에서 실행하기 위해서는 AWS는 SageMaker 에서, Azure 에서는 Azure Notebooks, 그리고 구글 클라우드에서는 AI Platform 에서 실행할 수 있습니다. 끝으로 텐서플로 자격증에 도전하시는 분들께 직접 코드를 실행해서 배울 수 있으므로 크게 도움되리라 예상합니다.


다음 편에서 PyTorch 예제들을 정리하겠습니다. 텐서플로 2.0 예제는 여기를 눌러 주세요!   


Aymeric Damien 깃허브: https://github.com/aymericdamien/TensorFlow-Examples
TensorFlow 설치 방법: https://www.tensorflow.org/install
TensorFlow 개발자 웹사이트: https://www.tensorflow.org/


브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari