분류 전체보기 129

EfficientNet Transfer Learning & Fine tuning

💪🏻Training a model from a scratch(모델을 처음부터 학습) : 정확도는 아주 느리게 올라가고 overfitting 될 가능성이 크다 trainable params, non-trainable params를 출력해보면 학습가능한 파라미터의 수가 훨씬 큼을 알 수 있다. 로스값은 1~4사이값에 있고 train accruacy 0.6, valid accruacy는 0.2수준에 머문다. from tensorflow.keras.applications import EfficientNetB0 with strategy.scope(): inputs = layers.Input(shape=(IMG_SIZE, IMG_SIZE, 3)) x = img_augmentation(inputs) outputs =..

Overfitting Underfitting

최적화(optimization): train data에서 최고의 성능을 얻으려고 모델을 조정하는 과정( 옵티마이저가 한다) 일반화(Generalization): 훈련된 모델이 처음 보는 데이터에서 얼마나 잘 수행되는지를 의미 Overfitting epoch가 진행되면서 train loss는 계속 감소하지만 test loss는 증가하기 시작함. 모델이 너무 복잡함 Underfitting epoch가 진행될수록 train loss , test loss 가 모두 좋지 않음. 훈련 데이터에 특화된 패턴을 학습하기 시작하여 새로운 데이터에 대해서 잘못된 판단을 하는 경우 https://ysyblog.tistory.com/111 [Deep Learning][딥러닝] DNN 성능개선 Deep Neural Networ..

Bayesian Optimiation

Bayesian Optimiation 불필요한 하이퍼 파라미터 반복 탐색을 줄여 보다 빠르게 최적 파이퍼 파라미터를 찾을 수 있다. 베이지안 최적화는 알려지지 않은 목적 함수를 최대(혹은 최소)로 하는 최적해를 찾는 기법이며, 본 알고리즘은 1)Surrogate 모델과 2)Acquisition 함수로 구성되어있다. (방법론적 배경) 전통적인 머신러닝 모델들은 튜닝하는데에 필요한 하이퍼파라미터의 수가 많지 않기 때문에 cross validaiton grid search를 통해 일반화 성능을 관찰하고 하이퍼파라미터를 결정하는 수가 많았지만, 최근 앙상블 계열이나 많이 사용하고 있는 딥러닝 모델들은 모델 자체의 학습시간이 길 뿐만 아니라 하이퍼파라미터의 수가 많기때문에 기존의 방법으로 search를 하기에는 ..

EfficientNetV2

EfficientnetV2, Smaller Models and Faster Training 빠른 학습에 집중한 모델이다. EfficientNetV2의 파라미터 수를 비교했을때에 월등히 파라미터의 수가 적고, 이는 그만큼 효율적인 모델임을 증명해주는 부분이다. 큰 이미지로 하면 학습속도가 느림 / 초기 layer에서 depthwise convolution / 모든 stage를 동일한 비율로 scaling하는 것이 최적의 방법이 아님. 그래서 소개한 전략 1. progressive learning 2. fused-MBC convolution 3. Non-uniform Scaling 이 중에서 Progressive learning에 대해서 살펴보면 :Progressive Learning 이란 트레이닝 할때 이..

Deep learning 2021.08.30

Keras Tuner hyperband only trains 2 epochs

아니 학습이 tuner initial epoch : 0 tuner epoch : 2 총 2 epoch 까지밖에 안되길래 찾아봣는데 원래 이런방식이라는 stack overflow ... 그전에 했을때는 max epoch = 50까지 넣으면 25부터 시작해서 알아서 해주던데 또 방법을 찾아보자 왜그랬냐 봤더니 hyperband tuner는 초반에 작은 epoch로 학습을 한다음에 좋은거를 찾아서 더 훈련시키기 때문이라고 한다. 이전에 돌린 걸 보면 76 Trial이 있고 그래서 max epoch = 50으로 설정해두니까 25부터 알아서 학습을 더 진행한 것 같다. 지금 돌리고 있는 코드도 여러번 trial을 시도하다 보면 나중에는 더 많은 epoch로 학습을 진행하지 않을까 하는 예상... 실제로 테스트 해..

Deep learning/Error 2021.08.25

Keras Tuner Custom objective 설정 방법

나같은 실수를 하는 사람이 또 있을까봐 남겨둔다... 튜너를 분명 사용했는데 f1 score이 무슨일이지.? 당황스럽고 황당하다,, 테스트를 해봐도 결과가 좋을리가 없지 역시 f1 accuracy direction이 min이 되어있고 val_f1_score direction이 min이 되어있다 이게 무슨일이야... 나는 설정한 적이 없는데 새로 정의되어서 들어가는 값은 디폴트로 min값이 들어가는 것 같다 keras tuner를 돌린 의미가 없어진건가... ㅠㅠㅠㅠ 또 에러 해결해보자 ~~! Custom 하게 metrics를 Compile해서 tuner hyperband 돌릴 때는 string일 경우 direction 설정을 해줘야한다고 했는데 해봤는데 이게 무슨 일이지 내가 설정해준 val_f1_sco..

Deep learning 2021.08.25

Keras Tuner 사용방법(튜토리얼)

돌려 놓고 퇴근헀더니 16시간째 돌아가고 있는 이 커널,, 이번 게시글은 keras tuner 사용법에 관한 글이다. 중간에 멈추면 어떻게 되는지에 대해서 찾아봤더니 체크포인트 저장을 위에서 프로젝트 이름이랑 directory로 해놔서 그 다음에 돌려도 그 이후 부터 돌아간다고 하는데 무서워서 끄지를 못하고 있는 상황이었다... CPU로 일단 간단한 MNIST 데이터로 실험을 해보고 끄기로 했다 결과는 !! ? Trial 16까지 하고 멈추고 다시 실행헀더니 17부터 실행된다 똑똑해 Keras Tuner~!~! 이대로라면 그럼 내가 돌리고 있는 애도 중간에 멈춰도 checkpoint로 저장되어있기 때문에 그 다음부터 실행이 가능할 것 같다. 오늘 제발 내가 지금까지 돌려서 prediction 한 것 보다..

Deep learning 2021.08.24

Hyperband (Successive halving Algorithm 보완한 알고리즘)

케라스 튜너에는 1. RandomSearch The basic and least efficient approach, Random Search doesn’t learn from previously tested hyperparameter combinations. It simply samples hyperparameter combinations from a search space randomly. 2. Hyperband Hyperband tuner is an optimized version of random search tuner which uses early-stopping to speed up the hyperparameter tuning process. The main idea is to fit a la..

RuntimeError : Model-building function did not return a valid Keras Model instance, found None

RuntimeError: Model-building function did not return a valid Keras Model instance, found None 케라스 튜너 에러 해결 방법 ! 오늘 이걸로 몇시간을 회사에서 시간을 보냈는지,,,, Error 를 마주해서 못풀면 너무 너무 답답하다,,, 이 글을 보는 모든 분들은 바로바로 해결하고 넘어가셨으면 좋곘다 : ) 아니 아무리 구글링해도 from tensorflow.keras import layers, models 로 바꿔서 하라는데 긍까 from keras import layers, models로 하면 안된다고함 !! 근데 keras -> tensorflow.keras로 바꿔도 에러가 뜸 # builder 생성하여서 학습하기 간단하게 de..

Deep learning/Error 2021.08.23