본문 바로가기

반응형

전체 글

(188)
GTSRB(German Traffic Sign Recognition Benchmark) Project 간단 정리 및 Example script 독실 신경 정보학 연구원들이 교통표지판(Traffic sign)을 예측하기 위해서 만든 데이터이며, 평균적으로 32 x 32 크기를 가지는 color 이미지로서, 43개의 교통 표지판과 관련된 약 4만 개의 이미지를 포함함 모델 아키텍처 및 개발 프로세스 Conv Layer -> Conv Layer -> MaxPooling Layer -> Flatten Lyaer -> Dense Layer -> Dense Layer 데이터 로드 : Colab에서 wget을 이용하여 데이터 다운로드 데이터 전처리 : 디렉토리 정리, OpenCV 이용한 이미지로드 cv2.imread(), train data& test data 생성 및 정규화 모델 아키텍처: loss = 'sparse_categorical_crossentr..
Callback 함수 간단 정리 개념 Callback 함수는 1. 특정 상황에서 실행되는 함수를 시스템에 먼저 등록해두면 2. 해당 상황이 발생했을 때 등록되어 있는 함수가 실행되고 3. 시스템에서의 결과를 통해서 개발자는 등록된 콜백 함수가 실행된 것을 알 수 있다. 즉, 콜백 함수라는 것은 특정상황에서 실행될 함수를 시스템에 등록해두면, 그러한 상황이 발생했을때 시스템이 자동으로 실행해주는 함수라고 볼 수 있다. 그래서 TensorFlow에서도 다양한 콜백 함수가 있는데, TensorFlow 콜백 함수는 모델의 학습 방향, 저장 시점 그리고 학습 정지 시점 등에 관한 상황을 모니터링 하기 위해 주로 사용됨 예를들어, 학습 도중에 학습율(learning_rate)을 변화시키거나 일정시간이 지나도 검증데이터(validation data..
Transfer Learning 전이학습을 활용한 나만의 이미지 분류 시스템 구현 예제 script Training Data는 카메라로 찍은 사진 혹은 네트워크에서 무작위로 다운 받은 사진들 Training Data 만들기 나만의 이미지로 Training Data를 만들기 위해서는 1. 먼저 dog_image/train과 같이 임의의 이름을 가지는 root_directory를 만든 다음, 이러한 root directory의 하위 directory로서, 이용자가 분류하고자 하는 이미지의 정답을 나타내는 directory. 예를 들면 chihuahua, jindo_dog, shepherd, yorkshire_terrier와 같은 directory를 생성한다. 2. 정답 이미지 데이터를 디렉토리 안에 최소 100개 이상 저장한다. 3. ImageDataGenerator.flow_from_directory()..
Cats and dogs data transfer learning example script cats and dogs 데이터 set은 CNN architecutre를 구축하고 평가하기 위한 일종의 Hello World 같은 학습 데이터라고 할 수 있다. 딥러닝 학습을 위해 총 2,000개의 학습 데이터와 1,000개의 테스트 데이터로 이루어져 있다. CIFAR-10의 데이터에 비해서 절대적으로 개수가 부족하다. Training Data -> Xeption(pre-trained feature extractor) -> User-Defined Classifier -> output [1] 학습 데이터 import tensorflow as tf from tensorflow.keras.models import Sequential from tensorflow.keras.applications import X..
전이학습 Transfer Learning 간단 정리 개념 및 필요성 CNN 모델의 품질을 높이기 위해서는 즉, 임의의 데이터에 대해서 정확도는 높이고 오버피팅은 줄이기 위해서는 기본적으로 많은 양의 데이터를 이용하여 학습해야한다. 그러나 많은 학습 데이터를 확보하려면 많은 비용과 시간이 소모되기 때문에 현실적으로 쉽지않은데, 이러한 데이터 부족 어려움을 해결하기 위해 등장한것이 전이학습이다. 전이학습(Transfer Learning)이란 아주 큰 데이터 set, 즉 21,841 부류에 대해서 총 1419만7122장의 이미지로 구성되어 있는 ImageNet 데이터를 사용해서 학습된 모델의 가중치를 가져와서 우리가 해결하려는 문제에 맞게 가중치를 보정해서 사용하는 것을 의미한다. 이 때 큰 데이터 set을 사용해서 훈련된 모델을 사건 학습 모델(pre-tra..
Functional API 사용시 혼동하는 경우 간단 정리 Functional API에서 동일한 의미를 갖지만, 1 Line으로 표현할 수 있는 코드를 2 Line으로 표현한 경우가 있다. 이런 경우 일반 함수를 호출하는 것으로 혼동할 수 있다. input_ = Input(shape=(28, 28, 1)) ### 일반 함수로 착각 x = Conv2D(32, 3, activation = 'relu') x = x(input_) ### -> 동일 코드 x = Conv2D(32, 3, activation='relu')(input_) x = Conv2D(64, 3, activation='relu')(x) x = MaxPool2D(pool_size=(2,2))(x) x = Dropout(0.25)(x) x = Flatten()(x) x = Dense(128, activat..
Functional API with CNN Example script [1] MNIST 데이터 불러오기 및 정규화 import tensorflow as tf from tensorflow.keras.datasets import mnist from tensorflow.keras.layers import Input, Conv2D, MaxPool2D from tensorflow.keras.layers import Flatten, Dense, Dropout from tensorflow.keras.models import Model (x_train, y_train), (x_test, y_test) = mnist.load_data() # 데이터 불러오기 x_train = x_train.reshape(-1, 28, 28, 1) # 텐서로 변환 (높이, 너비, 채널) x_test = x_..
Functional API 모델, 간단 요약 정리 Fucntion API 모델의 필요성 Sequential API 방식은 입력부터 출력까지 일직선으로 연결되어 있어 직관적이고 편리한 장점이 있으나, 여러개의 층을 공유하거나 다양한 종류의 입력과 출력을 사용해서 복잡한 모델을 만드는 일에는, 일직선 구조로 인해 한계가 있다. 두 모델은 모델 구축 부분을 제외한 compile, fit, evaluage, predict 부분은 모두 동일하다. Functional API 구축 instructure 1. 입력 데이터 shape을 tf.keras.layers.Input() 함수의 인자로 넣어주어 입력층을 정의 2. 이전 층 출력 값을 다음 층 함수의 입력 값으로 사용한 후에, 3. tf.keras.model.Model() 함수에 입력과 출력을 넣어주어 모델 구축을..

반응형