목록전체 글 (413)
오답노트

해당 포스트는 YOLOv3 를 기준으로 작성되었습니다. 참고바랍니다. YOLOv3 Github GitHub - ultralytics/yolov3: YOLOv3 in PyTorch > ONNX > CoreML > TFLite YOLOv3 in PyTorch > ONNX > CoreML > TFLite. Contribute to ultralytics/yolov3 development by creating an account on GitHub. github.com YOLOv3 Pretrained Releases · ultralytics/yolov3 YOLOv3 in PyTorch > ONNX > CoreML > TFLite. Contribute to ultralytics/yolov3 development by..

Object Detection ANN 또는 DNN으로 이미지를 예측하는 것은 기존의 자료구조를 파괴하여 예측했었다. 그래서 성능이 썩 좋지 않았다. CNN은 이미지의 자료구조를 최대한 살려서 예측했고, 성능도 괜찮았다. 하지만 CNN은 객체만 존재하는 iconic-image에서만 강점을 보이고 non-iconic-image에는 다소 실망스러운 모습을 보인다. non-iconic-image에는 사물이 한개가 아니라 여러 개가 포함되어 있다. 그렇기 때문에 CNN은 이를 제대로 예측할 수 없는 것이다. 그렇다면 사물이 여러 개 일 때는 어떻게 해야할까? 간단하다. 사물의 위치를 찾아내서 분류해내면 된다. 이것을 Object Detection이라고 한다. Object Detection은 Localization..
# 라이브러리 호출 import tensorflow as tf from tensorflow import keras from keras.layers import Input, Dense, Conv2D, MaxPool2D, BatchNormalization, Dropout, Flatten from keras.models import Model from keras.backend import clear_session from keras.callbacks import EarlyStopping import numpy as np # 데이터 불러오기 (x_train, y_train), (x_val, y_val) = tf.keras.datasets.mnist.load_data() # 데이터 전처리 x_val = x_val..

이미지 컴퓨터에서 표현하는 이미지는 픽셀 단위의 숫자로 되어 있다. 색이 없는 흑백은 1채널 색이 있는 RGB는 3채널로 이루어져 있다. CNN CNN 은 요약해서 말하자면 n*n 필터를 거쳐서 feature map을 만드는 것이다. Filter 위 gif는 5*5 이미지에 3*3 필터를 사용해서 합성곱을 하는 모습이다. 필터는 왼쪽 위에서 부터 시작하여, 1칸씩 움직이며 필터에 해당하는 영역에 대해 겹친 영역은 곱하고, 곱한 값들을 모두 더하여 1개의 픽셀로 출력한다. Stride stride는 필터가 움직이는 간격을 의미한다. 기본적으로는 1칸을 움직이지만 stride 값을 조절하면 1칸보다 더 크게 필터를 움직이게 할 수 있다. Padding stride는 간격을 잘못 설정하면 원본 이미지 밖으로 ..
#레이어 선언 il = keras.layers.Input(shape=(4,)) h1 = keras.layers.Dense(256,'swish')(il) bl = keras.layers.BatchNormalization()(h1) #

#라이브러리 호출 import tensorflow as tf from tensorflow import keras import numpy as np import pandas as pd #데이터 불러오기 from sklearn.datasets import load_iris iris = load_iris() #데이터 분리 from sklearn.model_selection import train_test_split x_train,x_val,y_train,y_val = train_test_split(x,y,test_size=0.3,random_state=2022) x_train = pd.DataFrame(x_train,columns=iris.feature_names) x_val = pd.DataFrame(x_v..
EarlyStopping EarlyStopping은 모델이 학습하는 중에 모델이 더 이상 성능이 좋아지지 않는다고 판단될 때 학습을 멈추게 한다. from tensorflow.keras.callbacks import EarlyStopping es = EarlyStopping(monitor = 'val_loss', min_delta=0, patience=5, verbose=1, restore_best_weights=True) model.fit(train_x,train_y, verbose=1,epochs=10, callbacks=[es], #
Flatton Layer 모델링을 할 때 학습시킬 데이터를 전처리하는 경우 중, 데이터를 1차원 데이터로 만드는 경우가 존재한다. 이때 numpy를 활용하여 reshape 하는 과정을 거쳐서 차원을 변환 시킬수도 있다. 하지만 numpy를 활용하지 않고 Keras에 존재하는 Flatton Layer를 통해서 다차원 데이터를 1차원으로 바꿀 수 있다. 실습을 통해 reshape으로 차원을 변환하는 과정과 Flatton Layer를 통해 차원을 변환하는 과정을 알아보자. 라이브러리 및 데이터 불러오기 import tensorflow as tf from tensorflow import keras import numpy as np import pandas as pd import matplotlib.pyplot ..

ANN (Artificial neural network) 인공 신경망이라고도 부른다. 인간의 뇌에 있는 뉴런을 모방하여 만든 알고리즘이다. input layer 와 output layer 그리고 둘 사이에 hidden layer가 존재하는 모습이다. Hidden Layer (은닉층) hidden layer는 input layer 와 output layer 사이에 존재한다. hidden layer를 추가하면 모델 성능에 유용한 feature를 모델이 알아서 만들게 된다. 또 hidden layer의 노드 수 만큼 새로운 feature를 만들게 된다. 이것을 Feature Representation 이라고 한다. 즉, 연결된 것으로부터 기존에 없던 새로운 Feature를 추출하는 것이다. hidden lay..
MultiClass 로지스틱 회귀는 분류 모델로 0과 1로만 판단할 수 있다. 하지만 분류의 개수가 3개 이상이면 분류할 수 없게 된다. 그래서 로지스틱 회귀 결과에 *n 으로 분류의 개수를 늘린다는 아이디어는 존재했지만, 범주형 변수에 수학적인 계산은 의미가 없다. 그래서 등장한 개념이 one vs the others(one vs rest) 이다. 이 방식은 분류의 개수가 3개 이상일 경우, 분류 중 1개일 경우와 그 외일 경우를 3개로 나누어 생각하는 것이다. 하지만 이 방법으로 로지스틱 회귀를 3개를 만들면 확률로 계산되어 1을 넘어가버리게 된다. 이 확률을 노말라이즈 하여 확실하게 분류를 하는 것이 SoftMax이다. SoftMax One-Hot Encoding to_categorical 함수를 ..