DEEP.I - Lab

오프라인 공간의 지능화를 꿈꾸는 딥아이 연구실입니다.

반응형

Python/Tensorflow 14

[Tensorflow] 학습을 위한 대용량 훈련 데이터 처리 Data Generator 클래스 만들기

Concept 신경망 모델을 학습하기 위해 입력 데이터를 정리하고 전 처리하는 일은 중요하지만 언제나 귀찮은 일입니다. 특히, 이미지 데이터를 학습하기 위해 텐서 플로우에서 ImageGenerator를 설정하는 것은 소규모 데이터에서는 정리가 쉽지만, 대용량 대규모 데이터를 규격에 맞게 정리하는것은 쉽지 않죠. 이번 포스팅에서는 ImageGenerator.flow_ 함수를 직접 class로 만들어 커스터마이징이 쉽고 저장이 용이한 학습 데이터 구축 방법을 구현해보도록 하겠습니다. SourceCode keras.io/api/preprocessing/image/ Keras documentation: Image data preprocessing Image data preprocessing image_datas..

Python/Tensorflow 2021.03.17

[Tensorflow] 분류기 학습을 위한 One-Hot encoding 라벨 생성하기

Concept softmax / cross entropy 를 이용한 신경망 분류기 학습에는 일반적으로 One-Hot Encoding (원-핫 인코딩)된 라벨 데이터를 많이 활용합니다. 텐서플로우는 쉽게 라벨 생성을 위한 함수를 제공하고 있습니다. SourceCode Index 라벨 데이터 one hot incoding MNIST의 경우, 라벨은 1차원으로 나열되어있으며 0은 0, 1은 1, ... , 9는 9로 인덱싱되어있습니다. 이를 원 핫 인코딩하면 다음과 같습니다. 여기서 on_value는 활성화된 값, off_value는 비활성값입니다. 일반적으로 1과 0으로 설정하면 됩니다. 만약 라벨 인덱스에 0 이하 값이 포함되어있다면, 값 설정이 혼돈될수 있기때문에 최소값을 0 이상으로 설정한 뒤 인코딩해..

Python/Tensorflow 2021.02.24

[Tensorflow] K-Fold 교차 검증으로 학습 모델 검증하기 (sklearn)

Concept K-Fold Cross Validation (K 폴드 교차 검증)은 데이터 수가 적을 때, 보다 확실한 검증과 정확도 향상을 위해 사용되는 검증 기법입니다. 파이썬 sklearn 라이브러리에는 K-Fold를 쉽게 정의해주는 함수를 포함하고 있습니다. from sklearn.model_selection import KFold # K-FOLD 정의 nb_split = 5 # 분할 개수 KF = KFold(n_splits=n_split, shuffle=True) 정의한 이후, 학습 단계에서 for문으로 데이터를 분할하면 됩니다. 예를 들어 pandas로 입력된 DataFrame 데이터는 다음과 같이 데이터가 k-fold로 나뉘게 됩니다. for train_idx, valid_inx in kf.s..

Python/Tensorflow 2021.02.21

[Tensorflow] GAN (생산적 적대 신경망) 구현하기

Concept 요즘 가장 흥미롭게 연구 중인 GAN (Generative Adversarial Network: 생산적 적대 신경망)입니다. GAN은 Neural Network에 뿌리를 두고 있으나 비지도 학습으로 정의되며, 두 개의 신경망이 서로 경쟁하며 학습하게 됩니다. 2014년 처음 아이디어가 제안된 이후, 급격한 연구적 성장을 거듭하며 현재는 놀라울 정도로 진보된 기술로 성장하고 있습니다. 이번 포스팅에서는 GAN의 오리지널 버전의 알고리즘을 간단하게 살펴본 뒤, MNIST 손글씨 인식 데이터를 이용해 텐서플로우로 구현해보도록 하겠습니다. Algorithm 기본적인 구조는 간단합니다. 가짜 이미지 생성을 위한 생성자(Generator) 신경망과 진짜와 가짜 이미지 판별을 위한 판별자(Discrim..

Python/Tensorflow 2021.02.17

[Tensorflow] RTX 3000 시리즈에 텐서플로우 2.5 및 CUDA 11 설치하기

Concept [2021-01-31] 2020년 9월 출시한 RTX 3000 시리즈는 공식적으로 CUDA 11 버전 이상을 지원하고 있습니다. 이에 맞는 텐서플로우 설치가 아직까지 안정화 문제인지 최적화되지 않은 상황입니다. 저는 Nightly (개발 버전)의 텐서플로우 설치를 통해 윈도우 환경에서 구축되어 포스팅을 남깁니다. Environment 운영체제 그래픽 카드 그래픽 카드 드라이버 버전 Window 10 RTX 3090 461.40 1. 가상환경 생성하기 가상환경을가상 환경을 생성하는 단계는 이전 포스팅과 동일합니다. 아나콘다를 이용하여 파이썬 3.8 기반 가상 환경을 생성해줍니다. deep-eye.tistory.com/7 [Tensorflow] 아나콘다 가상환경에서 텐서플로우 설치하기 2019..

Python/Tensorflow 2021.02.01

[Tensorflow] keras를 이용한 MNIST, CIFAR 이미지 분류 데이터셋 다운로드

이미지 분류 알고리즘 평가에 활용되는 기본적인 데이터셋은 용량이 크지 않아 그때그때 코드로 불러 활용하기 편합니다. 텐서 플로우나 Keras가 설치되어있다면 쉽게 작업 환경으로 불러올 수 있습니다. 텐서 플로우 설치는 이전 포스팅을 참고하시면 됩니다. deep-eye.tistory.com/7 [Tensorflow] 아나콘다 가상환경에서 텐서플로우 설치하기 2019년 말, 텐서플로우 2.0 버전이 배포되면서 머신러닝 분야에서 텐서플로우의 열기는 더욱 더 뜨거워졌습니다. 새로워진 텐서플로우 설치를 시작으로 CNN (Convolutional Neural Network) 기반의 이미지 deep-eye.tistory.com Keras에 포함된 이미지 데이터 다운로드 코드 import tensorflow as tf..

Python/Tensorflow 2020.12.30

[Tensorflow] VGG16 모델을 이용하여 CNN 이미지 분류기 학습하기

1. Concept 지난 포스팅에 이어, 이번 포스팅에서는 특정한 객체를 집중적으로 분류하기 위해 사전 학습된 신경망 모델을 기반으로 가장 기초적인 방법을 통해 미세 학습 (Find-Tuning)을 구현해 보록 하겠습니다. ImageNet으로 학습된 VGG16 모델을 기반으로, Kaggle에서 제공되는 고양이 강아지 분류 데이터를 활용하겠습니다. 데이터는 200mb 정도이며 Kaggle 원문 링크 또는 구글 드라이브에서 받으실 수 있습니다. 구현 환경 : Windows 10 / Conda / Python 3.8 / Tensorflow 2.2 / CUDA 10.2 이전 포스팅을 참고하시면 기초적인 텐서플로우 구현에 도움이 됩니다 [텐서플로우] 아나콘다 가상 환경에서 텐서플로우 설치하기 [텐서플로우] 텐서플..

Python/Tensorflow 2020.12.27

[Tensorflow] 사전 학습된 VGG16 모델로 이미지 분류하기

이젠 Imagenet의 방대한 데이터로 사전 학습된 신경망 모델만으로도 충분한 분류 성능을 기대할 수 있게 되었습니다. 물론, 특정한 객체를 집중적으로 분류하기 위해서는 추가 데이터를 통한 미세 학습이 (Find-Tuning)이 필요합니다. 이번 포스팅에서는 학습 모델 구축 이전 대략적인 성능 평가를 할 수 있는 사전 학습 모델로 이미지 분류를 Tensorflow로 구현해 보록 하겠습니다. 텐서 플로우 설치나 사전 학습 모델 불러오는 방법의 상세 설명은 이전 포스팅을 참고하시면 됩니다. deep-eye.tistory.com/7 [Tensorflow] 아나콘다 가상환경에서 텐서플로우 설치하기 2019년 말, 텐서플로우 2.0 버전이 배포되면서 머신러닝 분야에서 텐서플로우의 열기는 더욱 더 뜨거워졌습니다. ..

Python/Tensorflow 2020.12.13

[Python] tensorflow에서 GPU, CPU 사용가능 칩셋 여부 확인하기

컴퓨터 비전 기반 딥러닝 알고리즘의 핵심이 되는 CNN(Convolutional Neural Networks)의 연산은 기본적으로 CPU나 GPU 모두에서 가능하지만, 연산 프로세서의 메커니즘 차이로 인해 효율성에서는 큰 차이를 보이게됩니다. 여기서 우세를 보이는 GPU의 성능으로 인해 현대 딥러닝 시스템의 대부분은 GPU 연산을 기본을 전제로 구동되고 있습니다. 서론이 길었습니다. 이번 포스팅에서는 3D 그래픽 게임과 같이 딥러닝 시스템을 적용할때 발생하는 연산 프로세서 선택 및 성능 설정을 위해 선행되어야하는 GPU, CPU 사용가능 여부을 확인하는 코드를 살펴보도록 하겠습니다. 1. MAIN CODE # 필요 라이브러리 설치 pip3 install cpuinfo # -*- coding: utf-8 ..

Python/Tensorflow 2020.11.08

[Tensorflow] 사전 학습된 VGG16 모델에서 특징맵 추출하기

신경망 학습 모델의 특징맵은 (Feature Map) 단순 분류문제 이외에도 그림 1과 같이 RNN, LSTM, Tracking과 같은 다양한 알고리즘에서 매우 높은 빈도로 활용되고 있습니다. 특히 제가 요즘 주목하고 있는 RE-ID(Re-identification) 알고리즘에서 영상의 특징맵이 객체의 유사도를 비교하는데 활용되고 있는것이 상당히 흥미로웠습니다. 오늘 포스팅에서는 텐서플로우에서 사전 학습된 VGG16 모델을 이용한 특징맵 추출 방법을 간단히 알아보도록 하겠습니다. 기본 시스템 환경은 다음과 같습니다. 윈도우에서 아나콘다 가상환경으로 구축하였으며 Spyder 내에서 코드를 구현하였습니다. 이전 포스팅을 참고하시면 빠르게 기본 환경을 구축하실 수 있습니다. OS : Windows 10 Pyt..

Python/Tensorflow 2020.10.23
반응형