728x90
반응형

전체 글 311

Using TFRecord File

이전 Post에서 TFRecord File Format을 만드는 방법에 대해서 알아보았습니다. 이번 Post에서는 지난 번에 작성한 TFRecord Dataset으로 Image Classification을 해보겠습니다. TFRecord는 Tensorflow와 함께 사용할 때 최고의 성능을 보여줍니다. 그래서, 가능하면 모든 Code들은 Tensorflow에서 제공하는 Function들을 사용해서 작성해 보도록 하겠습니다. 0. Prepare 필요한 Module을 Load합니다. import tensorflow as tf from tqdm import tqdm from sklearn.model_selection import train_test_split Batch Size와 Prefetch할 Size를 미..

Deep_Learning 2023.08.26

Making TFRecord File

TFRecord File Format은 Tensorflow의 자체적인 Binary File Format입니다. 대규모 Dataset으로 작업을 할 경우 Binary File로 작업을 한다면 Data Input Pipeline의 효율을 높일 수 있으며, 결과적으로 전체적인 Model의 Training 시간도 향상될 수 있습니다. Binary Data는 Storage에 공간도 덜 차지할 뿐 아니라, Read / Write시에도 더 효율적입니다. 더욱이, Storage가 Motor를 사용하는 장치라면 더욱 그렇습니다. 단순히 TFReocrd File Format이 Binary여서 성능 향상을 이룬다는 것이 아니라, TFRecord가 Tensorflow에 최적화 되어 있기 때문에 Tensorflow가 제공하는 ..

Deep_Learning 2023.08.26

Tensorflow Input Pipeline

주어진 Data로 부터 Train에 필요한 Data형태로 변환하기까지는 매우 지루하고 험난한 과정입니다. Model에 입력 Foramt에 맞게 Shape을 변경하고, Data Augmentation도 고려해야 합니다. 가장 중요한 것은 주어진 Data가 수십, 수백만개가 있다면 Performance 또한 중요한 고려 요소가 됩니다. 이런 모든 고민을 해결해 주기 위해서 Tensorflow에서는 tf.data Module과 tf.data.Dataset Module을 준비놓았습니다. 이번 Post에서는 Tensorflow를 이용하여 효율적인 Data Input Pipeline을 만드는 방법을 알아보고자 합니다. tf.data.Dataset에서는 map / prefetch / cache / batch 이렇게 ..

Deep_Learning 2023.08.26

Tensorflow 2.x Installation on Windows 10 ( GPU )

Tensorflow 2.x을 Anaconda에서 설치하려고 하니 뭔가 잘 되지 않았습니다. Anaconda에서 Keras를 설치하면 Tensorflow 1.x와 GPU Support에 필요한 CUDA / cuDNN 등을 자동으로 설치해서 편리하게 사용했는데 많이 아쉽더군요. 아마 Package간 호환을 위한 Version Matching이 아직 잘 되지 않은 것 같습니다. 그래서, 이번에 Windows 10에서 Anaconda환경에서 Tensorflow 2.x & GPU Support 환경을 손수, Manual하게 꾸며볼까 합니다. 이번 Post 내용은 아래의 영상을 참고하여 작성되었습니다. Anaconda/window10 - Tensorflow 2.0 GPU 시원하게 설치해보자! (visual stud..

Deep_Learning 2023.08.21

Custom Generator

Custom Generator Model Training시에 Train Data를 넣어주는 방법중에 DataGenerator라는 것을 사용합니다. 현재 DataGenerator는 Image Data에 특화된 기능들이 많은데, 이를 다양한 Data에 사용할 수 있는 Custom Generator에 관해서 알아보도록 하겠습니다. 0. Training on Keras Keras는 Model을 Train 하기 위해서 다음 3가지의 함수를 제공합니다. .fit .fit_generator .train_on_batch 위 3개의 함수가 궁극적으로 하는 일은 User가 정의한 Model을 Train 시킨다는 점에서는 동일하지만, 동작 방식은 조금씩 다릅니다. 각각에 대해서 한 번 알아보도록 하겠습니다. 1. fit 기..

Deep_Learning 2023.08.20

Attention Mechanism

Attention Mechanism은 2015년 Neural machine translation by jointly learning to align and translate 이라는 논문에서 최초로 소개되었습니다. Attention이라는 단어는 직접적으로 등장하지는 않았지만, ‘Align’이라는 단어가 사용되었습니다. Machine Translation에서 큰 위력을 발휘하고 있는 Self-Attention, Transformer, BERT가 모두 Attention을 Base로 만들어진 개념들입니다. 이번에는 Attention Mechanism에 대해서 알아보도록 하겠습니다. 0. Seq2Seq Model vs Attention Mechanism 우선, 기존의 Seq2Seq Model과의 비교를 위해 간단..

Deep_Learning 2023.08.20

Ubuntu에 GPU & Tensorflow 사용환경 설정

이번 Posting에서는 GPU를 이용한 Deep Learning 환경 구축할 때 가장 일반적이며 많이 사용되는 Configuration인, Linux & nVidia GPU를 사용한 환경 설정을 하는 방법을 알아보도록 하겠습니다. 제가 사용할 Linux와 GPU를 아래와 같습니다. GPU : GTX 1050 Ti 6GB Ubuntu : 18.04 0. Prepare Ubuntu Installation 먼저 설치할 Ubuntu 배포판의 Image File을 Download하도록 하겠습니다. Ubuntu Image File Download 저는 18.04 Version을 사용하도록 하겠습니다. 설치를 편리하게 하기 위해서 방금 Download한 Ubuntu 설치 ISO Image를 USB Drive에 굽도..

Deep_Learning 2023.08.20

Sequence-to-sequence Model ( Encoder / Decoder Model )

1. Introduction Sequence-to-sequence Model은 Machine Translation , Text Summarization , Image Captioning에서 두각을 나타내는 Deep Learning Model입니다. 2014년 Google에 의해서 소개되었습니다.(논문, https://arxiv.org/pdf/1409.3215.pdf) Sequence-to-sequence Model은 Sequence Data를 Input으로 받아서, Sequence Data로 Mapping해 주는 Model입니다. ( Many-To-Many) 흔히, Encoder-Decoder Model이라고도 하는데, Sequence Data를 Encoder에서 Input Sequence Data의 정..

Deep_Learning 2023.08.19

LSTM ( Long-Short Term Memory )

LSTM은 RNN의 특별한 한 종류로써, 긴 의존기간이 필요한 학습을 할 수 있는 능력이 있습니다. LSTM의 목적은 명확하게 Long-Term Dependency를 제거하고자 Design되었습니다. 이 Post는 아래 Link의 글을 참고하였습니다. Understanding LSTM Networks LONG SHORT-TERM MEMORY 0. LSTM의 기본 구조 위의 구조는 tanh를 Activation Function으로 가지는 RNN의 기본적인 구조입니다. 아래의 그림은 LSTM의 기본 Cell 구조를 나타내고 있습니다. LSTM도 기본적으로 RNN과 유사한 구조를 가지지만, 몇 개의 Layer가 추가되었습니다. 본격적으로 하나씩 살펴보기 전에 기호들의 정의를 살펴보도록 하겠습니다. 1. Cel..

Deep_Learning 2023.08.19

RNN( Recurrent Neural Network )

이번 Post에서는 RNN(Recurrent Neural Network)에 대해서 다루어 보도록 하겠습니다. 주된 내용은 Standford 강의자료(CS231n 강좌 )를 참고하였습니다. Sequence Data는 다음과 같은 특징을 가집니다. 음악 , 영상 , 문장 , 날씨 , 주가 등은 각각의 Data가 개별적이 아닌, 연속적인 Data(Sequence Data)라는 점입니다. 앞쪽의 Data가 뒤쪽의 Data에 영향을 준다는 의미입니다. RNN 이외의 다른 ML / DL 기법이 이런 Sequence Data를 다루려면, Sequence가 가지는 전체적인 흐름을 하나의 Data 형태로 표현해야만 합니다. 그래서, ML(Machine Learning) / NN(Neural Net) / CNN(Convo..

Deep_Learning 2023.08.19
728x90
반응형