Spaces:
Running
Running
| import numpy as np | |
| import tensorflow as tf | |
| class Parameters: | |
| # data level | |
| image_count = 3670 | |
| image_size = 384 | |
| batch_size = 12 | |
| num_grad_accumulation = 8 | |
| class_number = 5 | |
| val_split = 0.2 | |
| autotune = tf.data.AUTOTUNE | |
| # hparams | |
| epochs = 10 | |
| lr_sched = "cosine_restart" | |
| lr_base = 0.016 | |
| lr_min = 0 | |
| lr_decay_epoch = 2.4 | |
| lr_warmup_epoch = 5 | |
| lr_decay_factor = 0.97 | |
| scaled_lr = lr_base * (batch_size / 256.0) | |
| scaled_lr_min = lr_min * (batch_size / 256.0) | |
| num_validation_sample = int(image_count * val_split) | |
| num_training_sample = image_count - num_validation_sample | |
| train_step = int(np.ceil(num_training_sample / float(batch_size))) | |
| total_steps = train_step * epochs | |
| params = Parameters() | |
| patch_size = (2, 2) # 4-by-4 sized patches | |
| dropout_rate = 0.5 # Dropout rate | |
| num_heads = 8 # Attention heads | |
| embed_dim = 64 # Embedding dimension | |
| num_mlp = 128 # MLP layer size | |
| qkv_bias = True # Convert embedded patches to query, key, and values with a learnable additive value | |
| window_size = 2 # Size of attention window | |
| shift_size = 1 # Size of shifting window | |
| image_dimension = 24 # Initial image size / Input size of the transformer model | |
| num_patch_x = image_dimension // patch_size[0] | |
| num_patch_y = image_dimension // patch_size[1] | |