Loading...
2024. 1. 18. 00:48

(매우 중요)대용량 데이터로 colab 딥러닝 학습할 때 첫번째 epoch이 매우 느리다면(colab 대용량 데이터, dataloader 병목현상)

colab에서 7만개 정도의 이미지 데이터를 학습하고 6만개 정도 이미지 데이터를 test할려고 하는데 평소에 한 것처럼 구글 드라이브에 데이터를 넣어두고 학습 시도 하지만 예전에 경험한 것처럼 한 폴더에 너무 많은 데이터를 넣어두면 파이썬이 구글 드라이브 폴더에 아예 접근을 못함 https://deepdata.tistory.com/1084 구글드라이브로 대용량 데이터를 다룰 때 필요한 테크닉(압축해제, 자동압축, 파일 크기 확인방 구글 드라이브의 한 폴더 내에 너무 많은 데이터가 있을 경우, colab에서 구글 드라이브로 연동할때, 파이썬이 구글 드라이브의 폴더 내의 데이터에 제대로 접근하지 못한다 그래서 한 폴더당 1000 deepdata.tistory.com 그래서 한 폴더에 500개 정도로 해서 ..

2024. 1. 12. 01:59

딥러닝 모델 training의 기본 법칙

1. 모델이 high bias인가? >> training set에 대한 성능이 좋은가? 안좋은가? training set에 대한 성능이 좋지 않다면, 더 깊은 network를 쓰거나 hidden layer, hidden unit을 많이 쓴다든지, epoch을 늘려 더 오래 training을 하거나 더 개선된 optimization 알고리즘을 사용하거나 더 좋은, 깊은 network를 사용하는 것은 거의 항상 도움이 되는 반면에 더 오래 training하는 것은 도움이 안되는 경우도 많지만, 시도해보는건 나쁠건 없다 ---------------------------------------------------------------------------------- 중요한건 최소한 high bias를 제거하는..

2023. 9. 13. 00:34

구현하면서 배우는 batch normalization에 대한 몇가지 핵심사항

면접에서 batch normalization이 training하기 전에 실행하냐? training하면서 실행하냐? 이런걸 물어봤는데 batch normalization에 대해 몇가지를 배워보자 1. 핵심 아이디어 The idea is that, instead of just normalizing the inputs to the network, we normalize the inputs to layers within the network. network에 대한 input을 normalizing하는 것 대신에 network 내부의 layer에 대한 input을 normalizing함 It's called batch normalization because during training, we normalize e..

2023. 6. 7. 17:42

neural network를 training 하기 전에 input을 normalization해야하는 이유

1. normalization 신경망의 훈련을 빠르게 하기 위해 필요한 input normalization 다음과 같이 2차원의 입력데이터가 존재할때 주어진 데이터의 평균을 빼고, 표준편차를 나누는 방법으로 normalization할 수 있다. 데이터에 평균을 빼서 얻은 새로운 값의 평균은 0이 되고 위 그림에서 $x_{1}$이 $x_{2}$보다 분산이 더 큰 특징이 있다. 표준편차를 나눠서 얻은 새로운 값의 분산은 1로 되어 $x_{1}$과 $x_{2}$의 산포가 동일해진다. $$Z = \frac{X-\mu}{\sigma}$$ $$\mu = \frac{1}{m}\sum_{i = 1}^{m} X_{i}$$ $$X = X - \mu$$ 새로 얻은 X의 평균은 0이므로, 분산은 다음과 같이 구할 수 있다. ..

2023. 5. 5. 01:35

validation set의 필요성 이해하기 재활

1. validation set은 왜 필요할까 1-1) 필요성 학습 후 test set에 적용하여 모델의 성능을 평가해야하는데 학습 과정에는 평가하기 위한 데이터가 없으니 제대로 학습을 하고는 있는 것인지 정확한 검증이 어려움 학습에 이용되지 않은 데이터로 모델이 학습을 잘 하고 있는지 중간 검증을 하고 있는 것은 분명히 필요함 일반화를 잘 하고 있는지 아닌지 판단이 가능함 test set을 학습 중에 사용할 수는 없으니 train set의 일부로 validation set을 만들어 남은 train set으로 학습을 진행하고 validation set으로 중간 검증을 수행 data가 오히려 줄어드는 것이 아닌가? train set으로부터 validation set을 만들면 데이터가 줄어들어서 오히려 bi..

2023. 4. 24. 03:23

pytorch를 이용한 training process 기본기 완벽하게 이해하기

1. training을 위해 필요한 것? training을 위해 dataset, dataloader를 준비해서 data를 효율적으로 뽑아낼 준비를 했고 설계한 model과 loss, optimizer, learning rate, scheduler, metric 등을 준비했다면 학습 준비 완료! 2. model.train() train하기 전에 model을 trainable하게 변경시키는 함수? 그런데 분명 model 설계할 때 나는 각종 parameter의 requires_grad=True로 한것같은데 굳이 해야하나??? batchnorm이나 dropout같은 것이 training 과정이랑 evaluation 과정에서 다르게 작동해야한다고 알려져있어서 train mode와 eval mode를 구분하기 위..