[x] when using imagefolder, augument should be transforms module , not albumentation
[x] we should create wrapper function
[x] we cant use imagefolder because we will do k_fold cross validation and split into a train and valid data using df and the procedure makes us take complex steps where dataset class should be used
[ ] delete some images
[ ] delete image where there is no entity
[ ] distinct duplicate images
[ ] use auto deletion app
[x] to learn faster
[x] set num_workers=2 instead of 0 in dataloader
[x] 2 is the enough number
[x] pin_memory = True
[x] torch.backends.cudnn.benchmark = False not True
[x] slower but keep reproductivity
[x] Stratified KFold to deal with imbalanced data
model
[x] drop out
[x] BN
[ ] use effnet B4 if there is extra execution time
[ ] use YALO for object detection
learning
[x] grid search, optuna
[x] params in CONFIG
[x] parallel computing
[x] use GPU effectively
[x] store model periodically
[x] show logs
[x] create early stopping module
pytorch has not module of early stopping, but pytorch lightning has
[x] use lr_scheduler.ReduceLROnPlateau
[x] fine tuning using pre-trained model learned imagenet
[x] change data augumentation method
[ ] Stochastic Weight Averaging
[ ] use focal loss instead of cross entropy loss to deal with imbalance data
[x] transfer learning or fine tuning -> dont use transfer learning because it cant achieve high f1
[x] requires_grad only in last layer
experiment
[ ] try some patterns of random seed when using not convex optimization
[x] use wandb
[x] use hydra
[x] it enables config file to be written structurally
[x] we can override values on command line
[x] create faster prototype and debug mode
[x] small number of dataset
[x] small number of classes
[x] large batch_size
[x] small epoch
[x] half-precision training
[x] as fast as twice or more, also as low memory as half
[ ] depth wise convs, instead of regular convs
[x] use learning rate scheduler
[x] use timm to import model
[x] use f1-macro because of imbalance data
[ ] show images and predicted labels
[ ] use vertex pipelines instead of kubeflow, mlflow, and airflow because it can execute on full-managed
[ ] also instances will stand only when pipelines are executed
category classification model
entity classification model
want to do