일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 그래프이론
- 하둡2
- 하이브
- C언어
- hive
- RNN
- LSTM
- NumPy
- 선형대수
- C
- GRU
- graph
- hadoop2
- Sort
- 딥러닝
- 파이썬
- codingthematrix
- tensorflow
- 텐서플로
- python
- Java
- 코딩더매트릭스
- scrapy
- effective python
- collections
- 알고리즘
- yarn
- recursion
- 주식분석
- HelloWorld
- Today
- Total
목록DeepLearning/Learning TensorFlow (19)
EXCELSIOR
학습된 모델 재사용하기 - Transfer Learning1. Transfer Learning 이란?규모가 매우 큰 DNN 모델을 학습 시킬 때 처음부터 새로 학습 시키는 것은 학습 속도가 느린 문제가 있다. 이러한 경우 기존에 학습된 비슷한 DNN모델이 있을 때 이 모델의 하위층(lower layer)을 가져와 재사용하는 것이 학습 속도를 빠르게 할 수 있을 뿐만아니라 학습에 필요한 Training set도 훨씬 적다.예를 들어, 아래의 그림처럼 CIFAR10 데이터셋을 분류(비행기, 자동차, 새, 고양이, 사슴, 개, 개구리, 말, 배, 트럭의 10개 클래스)하는 모델 A가 이 있다고 하자. 그런 다음, 분류된 CIFAR10 이미지에서 자동차의 종류를 분류하는 모델인 B를 학습시킨다고 할 때, 학습된..
Custom Estimator이번 포스팅은 TensorFlow™️>GUIDE를 참고했으며, TensorFlow Estimator에 대한 자세한 내용은 여기를 참고하면 된다. 1. Estimator 란tf.estimator은 Python의 대표적인 머신러닝 모듈인 Scikit-Learn(sklearn)의 스타일처럼 복잡한 딥러닝 모델을 쉽게 작성할 수 있도록 해주는 라이브러리다. Keras와 마찬가지로 tf.contrib.learn으로 텐서플로에 들어왔으며, 이번 포스팅에서의 예제는 1.11.0버전(2018.09.28)에는 tf.estimator로 옮겨졌다. 2. Pre-made vs. Custom아래의 그림에서 볼 수 있듯이, pre-made Estimator들은 tf.estimator.Estimator..
TensorFlow Feature Column텐서플로에서는 tf.feature_column을 이용해 모델에 맞게 데이터를 변형하거나, 데이터의 형식을 지정해줄 수 있다. 이러한 tf.feature_column을 통해 처리한 데이터를 Estimator(여기 참고)에 쉽게 적용하여 모델링 할 수 있다. 이번 포스팅에서는 텐서플로의 feature_column을 이용해 데이터를 처리하는 방법과 Estimator가 아닌 텐서플로의 Low-Level API를 이용해 feature_column의 결과가 어떠한 모양을 가지는지, 그리고 여러개의 범주형 데이터에 대한 입력층(input layer)의 형태는 어떠한지에 대해 알아보도록 하자.먼저, 데이터의 종류에는 어떤 것이 있으며, Feature Engineering, ..
Chap10.1 - 모델 익스포트와 서빙, Saver학습한 모델을 저장하고 내보내는 방법에 대해 NumPy의 .savez()와 텐서플로의 Saver를 사용해 학습된 가중치를 저장하고 로드해보자. 10.1 모델을 저장하고 내보내기텐서플로를 이용해 모델을 만들고 학습한 뒤 학습된 모델 즉, 매개변수(weight, bias)를 저장하는 방법에 대해 알아보자. 이렇게 학습된 모델을 저장해놓으면 나중에 모델을 처음 부터 다시 학습시킬 필요가 없기 때문에 편리하다.학습된 모델을 저장하기 위해 NumPy를 이용해 매개변수를 저장하는 방법을 알아보고, 텐서플로의 Saver를 이용해 모델을 저장하고 관리하는 방법에 대해 알아보자. 10.1.1 로딩된 가중치 할당먼저, NumPy의 savez를 이용해 학습된 가중치 값을 ..
Chap09 - 분산 텐서플로 9.1 분산 컴퓨팅텐서플로에서의 분산 컴퓨팅은 딥러닝 모델의 학습 속도를 향상 시키기 위해서 여러 대의 기계를 사용하는 것을 말한다. 9.2 텐서플로의 병렬처리 요소그렇다면, 텐서플로에서 병렬계산(parallel computation)에 사용되는 요소와 개념에 대해 알아보도록 하자. 9.2.1 tf.app.flagstf.app.flags는 병렬계산과는 전혀 상관이 없지만, 텐서플로 예제에서 많이 사용되므로 아는것이 좋다. 그리고 이 교재의 마지막 예제에서도 tf.app.flags를 사용한다.tf.app.flags는 Python의 argparse 모듈의 래퍼(wrapper)이다. argparse모듈은 Terminal이사 cmd창에서의 python ~.py --~~에 있는 인자..
Chap08 - 큐, 스레드, 데이터 읽기텐서플로 파일 형식인 TFRecord를 읽고 쓰는 방법에 대해 알아보자. 8.1 입력 파이프라인MNIST 이미지처럼 용량이 크지 않은 데이터는 메모리에 올려 텐서플로(TensorFlow) 그래프에 데이터를 넣어주는 방법이 편리하지만, 데이터의 용량이 큰 경우에는 메모리에 데이터를 올리는 것이 어려워진다. 이럴 경우에는 데이터를 필요한 만큼 로드하는 방식이 효율적이다.앞에서 모델링한 딥러닝 모델에 데이터를 넣어주기 위해서 tf.Session().run()에서 feed_dict인자에 데이터를 넣어 줬었다. 하지만, 이러한 방법은 데이터를 단일 스레드로 복사하여 속도가 느리다는 단점이 있다.텐서플로에서는 이러한 단점을 보완하는 텐서플로의 표준 파일 형식과 이러한 형식을..
Chap07.4 - 텐서플로 추상화와 간소화, TF-Slim7.5 TF-SlimTF-Slim은 텐서플로를 가볍게(?) 사용할 수 있는 텐서플로의 확장된 추상화 라이브러리이며, 복잡한 모델을 빠르고 직관적으로 정의하고 학습할 수 있다. TF-Slim은 텐서플로 내에 포함되어 있으므로 별도의 설치를 하지 않아도 된다. TF-Slim의 추상화는 모두 CNN(Convolutional Neural Network)에 관한 것이다. CNN의 경우 동일한 합성곱 계층(Convolution Layer)을 여러번 재사용하는 보일러플레이트(boilerplate code)코드가 많다. 이러한 코드가 많을 경우 모델이 복잡해질 뿐만아니라 가독성 또한 떨어지게 된다. TF-Slim은 이러한 복잡한 CNN 모델을 High-Leve..
Chap07.3 - 텐서플로 추상화와 간소화, Keras 7.4 케라스(Keras)케라스(Keras)는 인기있는 텐서플로 확장 라이브러리 중 하나이다. 케라스는 원래 Theano용으로 개발되었지만, 2017년 구글의 공식 후원을 받아 1.1버전 부터 tf.contrib.keras안에 들어왔으며, 현재 이글을 작성하는 시점인 2018.06.30의 1.8버전에는 tf.keras로 변경된 텐서플로의 한 부분으로 자리를 잡았다. 따라서, 케라스는 Theano와 텐서플로(TensorFlow) 양쪽을 모두 지원한다.케라스는 연산 그래프를 다루고 텐서플로와 통신하는 데 사용할 수 있는 자체 그래프 구조를 가지고 있다. 케라스는 순차형(Sequential)모델과 함수형 API(Funtional API) 두 가지 유형이..