머신러닝
-
[keras] generator를 이용한 multiple input data딥러닝/tensorflow 2020. 2. 17. 14:10
tensorflow 2.0의 keras를 사용하면서 하나의 모델에 여러 개의 input data를 넣어야하는 경우가 생겼다 그러면서 이전에 classification 모델을 복붙해서 진행하려고 했지만 그 모델은 input이 한 개여서 문제가 생겼다 그리고 해당 모델에 generator까지 같이 쓰려고 하니 좀 더 복잡해져서 예제 코드를 새로 만들었다 import math from keras.models import Sequential, Model from keras.layers import Dense, concatenate, Flatten batch_size = 16 seed = 100 def buildModel(): #first model first_model = Sequential() first_mo..
-
efficientNet 개발 (3)딥러닝/tensorflow 2020. 2. 12. 10:44
class Preprocess(): def __init__(self, batch_size, img_width, img_height): self.img_width = img_width self.img_height = img_height self.batch_size = batch_size def makeGenerator(self, train_x, train_y, fit_val): train_datagen = ImageDataGenerator(rotation_range = fit_val['rotation_range'],\ horizontal_flip = fit_val['horizontal_flip'],\ vertical_flip = fit_val['vertical_flip'],\ preprocessing_fu..
-
efficientnet 개발 (2)딥러닝/tensorflow 2020. 2. 12. 10:19
요 며칠 속이 뒤집어져서 이제야 글을 쓴다 일단 이전에 efficientNet 클래스 내부에 더 들어간 코드를 먼저 올린다 def fit(self, train_x, train_y): es = EarlyStopping(monitor='val_loss', mode='auto', verbose=1, patience=12) checkpoint = ModelCheckpoint(self.weight_path, \ monitor='val_acc', \ verbose=1, \ save_best_only=True, \ save_weights_only=True, \ mode='max') self.model.fit(train_x, \ train_y, \ batch_size=self.batch_size, \ epochs=5,..
-
efficientNet딥러닝/tensorflow 2020. 2. 8. 22:25
일단 이전에 pytorch 게시판에서 작성한 hardnet 등의 segmentation 이후의 classification 에 대한 모델 중 SOTA 알고리즘으로 efficientNet 을 사용하였다 efficientNet에 관련한 설명은 아래 링크에 잘 설명되어 있다 https://norman3.github.io/papers/docs/efficient_net EfficientNet: Rethinking Model Scaling for CNN. 참고로 그림 2(a) 에서 입력 크기는 \(\) 이고, 출력 크기는 \(\) 이다. norman3.github.io 그리고 내부에 쓰인 MBConv layer는 아래 링크의 linear bottleneck을 참조 https://n1094.tistory.com/29 ..
-
IOU loss딥러닝/pytorch 2020. 2. 7. 17:49
hardnet을 학습하면서 validation 이미지들의 iou 값이 계속 0.9를 못넘었다 그래서 loss function 문제인가 하고 이전에 사용했던 cross entropy 대신 iou loss를 사용하였다 링크는 아래 https://discuss.pytorch.org/t/how-to-implement-soft-iou-loss/15152 How to implement soft-IoU loss? I am trying to implement soft-mIoU loss for semantic segmentation as per the following equation. but loss is very low and I am not able to find the wrong step in the implem..
-
아파서 내일 할 것만 정리딥러닝/pytorch 2020. 2. 6. 12:02
새벽부터 메스껍고 구토할 거 같아서 병원에서 약타고 오후 반차... 오늘 unet 을 써서 학습하려고 했는데 일단 찾아놓은 것만 올려놓고 ㅌㅌ한다 unet 코드 https://github.com/milesial/Pytorch-UNet milesial/Pytorch-UNet PyTorch implementation of the U-Net for image semantic segmentation with high quality images - milesial/Pytorch-UNet github.com 여기서는 dice loss를 쓴다고 했는데 뭔 주사위 loss인가 싶어서 좀 찾아서 읽다가 눈에 초점을 잃어버림 다양한 loss에 대한 정리 https://lars76.github.io/neural-networ..
-
딥러닝 학습 양상딥러닝/딥러닝 etc 2020. 2. 5. 18:31
지금까지 다양한 프로젝트를 하면서 학습이 어떻게 되는지 하나하나 다 눈으로 확인해봤다 (강박증인가...) 암튼 분류 별로 하나하나 따져봤을 때 image classification 은 각 이미지가 어떤 class 인지 바로 학습을 진행하는 것으로 보였다 loss 값을 봤을 때 예를 들어 아래 이미지와 같은 느낌 근데 image segmentation을 진행하는 것을 보자니 이미지의 형태를 찾는다 -> 그 형태가 어떤 class에 들어가는지 찾는다 의 순으로 진행되는 것으로 보였다 그래서 중간에 잠깐 accuracy가 뛰었다가 다시 class를 탐색하면서 떨어졌다가 제대로 학습하는 느낌?으로 진행되었다 그리고 OCR의 경우의 학습 양상은 이렇다 텍스트의 길이를 탐색한다 -> 각 위치에 맞는 글자를 학습한다..
-
HardNet 개발 (2)딥러닝/pytorch 2020. 2. 5. 17:41
어제부터 계속 학습을 진행하는데 IOU로 평가한 acc는 80%가 나오는데 이미지는 아무것도 안찍혀서 이상하다고 생각했다 ...는 학습할 때 이미지하고 테스트할 때 이미지를 다르게 해서 문제였다 (학습할 때는 255로 안나누고, 테스트할 때만 나눔) 그래도 일단은 IOU 코드는 아래와 같이 수정 def iou_pytorch(outputs: torch.Tensor, labels: torch.Tensor, device='cuda'): # You can comment out this line if you are passing tensors of equal shape # But if you are passing output from UNet or something it will most probably # be..