오늘은 train/validation/testset의 차이점을 써보려고 한다. train dataset 모델 학습에 사용되는 train data는 모델이 공부를 할 때, 문제와 정답을 모두 보고 자기것으로 알아가는 과정에서 필요한 dataset이다. validati
일반적으로 모델 학습은 cost를 줄이는 방향, 틀림을 줄이는 방향, 즉 loss를 최소화하는 방향으로 가는 과정을 의미한다. loss를 줄이는 것이 성능을 높이는 것이기 때문이다. (꼭 그렇지 않을 수도 있다.) 이를 optimization 최적화라고 하고, 이를 수행하는 방법 또는 알고리즘을 optimizer라고 한다. 최소의 loss를 찾는 가장 기...
loss function을 말로 정의하면 모델의 예측과 정답의 차이를 수치화 한 것, 즉 가중치 W가 얼마나 별로인지를 정량화 한 것이라고 할 수 있겠다. 우리의 목표는 손실함수의 값을 최소화 하는 W와 bias를 찾는 것이다. 먼저, loss 계산 과정을 쉽게 이해하
activation function, 활성함수는 왜 필요한가 아래는 활성함수가 사용된 코드 한 부분이다. tensorflow keras를 이용하여 간단하게 구현한 sequential model이다. 먼저 input을 flatten 하고 fc layer를 이용하여 ou
모델을 학습시킬 때, 우리는 학습의 과적합을 막고 그 성능을 높이고자 다양한 기법들을 사용 한다. 데이터를 조건에 맞게 scaling 하거나 학습 과정을 변경할 수도 있다. 그 중에서도, 자주 사용하는 방법을 크게 2가지로 나눠보면 아래와 같다. batch normalization batch normalization 은 layer의 연산 결과를 다음 입력...
요즘은 모델의 학습 과정을 공부하고 있다. 우리에게는 딥러닝 라이브러리가 있으니, backpropagation 계산을 일일이 직접 할 필요은 없겠지만 그 과정을 한번은 정리해 두면 이해하는데 도움이 될 것 같아 전체 과정을 보려고 한다. backpropagation, 역전파를 간단하게 정의하면 내가 원하는 목표값으로 가기 위해 실제로 모델에서 계산된 출...
처음에 딥러닝을 배울 때, 비슷하게 느껴졌던 두 개념이 optimizer 와 backpropagation 이었다. 두 개념을 명확히 하기 위해 각각 주제를 잡고 순차적으로 정리하고 있다. back propagation은 바로 전 글에 포스팅 하였고, 이번에는 optimizer에 대해 쉽게 풀어서 써보려고 한다. optimizer 의 기본 원리는 gradi...
transforms, dataset, dataloader 3가지를 예전부터 사용하면서 한번 정리해야지 했는데, 요즘 코드 리뷰를 작성하면서 그 필요성이 더욱 와닿았다. 3가지 모두 데이터셋이 모델의 입력으로 들어갈 때, 데이터를 읽어오고 전처리하고 증가시키는 과정에서
오늘 dns2020으로 noise suppresion test code를 돌려보다가 자꾸 버전때문에 에러가 발생하여 그김에 버전확인한것도 글로 적어야겠다는 생각이 들었다. gpu 버전 nvidia-smi linux window NVIDIA-SMI 버전 Drive
def seed(self, seed_value): import random import torch.backends.cudnn as cudnn random.seed(seed_value) torch.manualseed(seedvalue) torch.cuda.manualseedall(seed_value) torch....