DEEP.I - Lab

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

반응형

TensorFlow 12

[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] 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

[Tensorflow] 텐서플로우에서 사전 학습된 VGG16 모델 불러오기

텐서플로우 설치 포스팅에 이어 사전 학습된 VGG 모델을 활용하는 방법을 살펴보겠습니다. VGG Network는 2014년 이미지넷 인식 학술대회에서 2등을 한 신경망 구조입니다. 본격적으로 층이 깊어지기 시작한 초기 모델 중 하나이며, 사용이 쉽고 연결 구조가 직관적이여서 현재까지도 다양한 학습 모델 연구에서 활용되고 있습니다. 모델은 VGG16/19로 나뉘며 본 포스팅에서는 ImageNet 데이터로 사전 학습된 VGG16 모델을 텐서플로우를 통해 활용해보도록 하겠습니다. 기본 시스템 환경은 다음과 같습니다. 윈도우에서 아나콘다 가상환경으로 구축하였으며 파이참으로 코드를 구현하였습니다. 이전 포스팅을 참고하시면 빠르게 기본 환경을 구축하실 수 있습니다. OS : Windows 10 Python : 3...

Python/Tensorflow 2020.07.10

[YOLO] Python과 OpenCV를 이용한 실시간 객체 탐지 알고리즘 구현

Window 아나콘다 가상 환경을 활용하여 YOLO Object Detection을 구동해보았습니다. 일반적으로 쓰이는 프레임워크 Darknet이 아닌OpenCV 내장 함수를 이용하였기에 복잡한 설치나 환경 설정이 필요하지 않습니다. 출처 : https://pysource.com/2019/06/27/yolo-object-detection-using-opencv-with-python/ YOLO object detection using Opencv with Python - Pysource We’re going to learn in this tutorial YOLO object detection. Yolo is a deep learning algorythm which came out on may 2016 an..

Python/Python 2020.06.26
반응형