Skip to content

Commit

Permalink
update readme and modify some hyper parameter
Browse files Browse the repository at this point in the history
  • Loading branch information
pprp committed Jun 18, 2021
1 parent 569d5e7 commit 2730a1f
Show file tree
Hide file tree
Showing 6 changed files with 43 additions and 18 deletions.
25 changes: 23 additions & 2 deletions NAS/cifar100/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
- [ ] experimental results on cifar100 and cifar10
- [ ] distributed data parrallel to support
- [ ] support transformer models
- [ ] support differenet datasets such as tiny imagenet

## Get Started

Expand All @@ -26,8 +27,28 @@
Training Details:

- total epoch: 300
- lr scheduler:
- weight decay:
- lr scheduler: CosineAnnealingLR
- weight decay: 5e-4

### CIFAR10

| Network | Params(M) | Train loss | Train top1 | Val loss | Val top1 | Hyper | GPU(M) |
| -------------- | --------- | ---------- | ---------- | -------- | -------- | ------------------ | ------ |
| densenet_cifar | 4.4 | 0.00156 | 99.99% | 0.24 | 94.83% | 0.1/256/w/o cutout | 7303 |
| dla | 63 | 0.00164 | 99.99% | 0.20 | 95.57% | 0.1/256/w/o cutout | 5555 |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |





### CIFAR100

| dataset | network | params | top1 err | top5 err | epoch(lr = 0.1) | epoch(lr = 0.02) | epoch(lr = 0.004) | epoch(lr = 0.0008) | total epoch |
| -------- | ------------------ | ------ | -------- | -------- | --------------- | ---------------- | ----------------- | ------------------ | ----------- |
Expand Down
7 changes: 3 additions & 4 deletions NAS/cifar100/configs/meta.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,11 +27,11 @@ save_dir: record
dataset: cifar100
# support cifar100 or cifar10

epochs: 200
epochs: 300
batch_size: 2048
learning_rate: 0.1
learning_rate: 0.1
num_workers: 3
model_type: sample
model_type: dla
finetune: false
distill: false

Expand All @@ -41,7 +41,6 @@ seed: 0

report_freq: 2
gpu: 0
classes: 100

# 算法细节
sandwich_N: 3
Expand Down
2 changes: 1 addition & 1 deletion NAS/cifar100/datasets/dataset.py
Original file line number Diff line number Diff line change
Expand Up @@ -176,7 +176,7 @@ def get_train_loader(batch_size, num_workers, clss='cifar10', cutout=0):
# 3. get dataloader

train_loader = torch.utils.data.DataLoader(
train_dataset, num_workers=num_workers, pin_memory=True, batch_size=batch_size, drop_last=True)
train_dataset, num_workers=num_workers, pin_memory=True, batch_size=batch_size, drop_last=True, shuffle=True)

return train_loader

Expand Down
6 changes: 4 additions & 2 deletions NAS/cifar100/datasets/transforms.py
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,8 @@ def __call__(self, img):
return img




class DatasetTransforms:
def __init__(self, clss, cutout=0):
if clss == 'cifar10':
Expand All @@ -55,8 +57,8 @@ def _get_default_transforms(self):
default_configure = T.Compose([
T.RandomCrop(32, 4),
T.RandomHorizontalFlip(),
T.RandomResizedCrop((32, 32)), # for cifar10 or cifar100
T.RandomRotation(15)
# T.RandomResizedCrop((32, 32)), # for cifar10 or cifar100
# T.RandomRotation(15)
])
return default_configure

Expand Down
File renamed without changes.
21 changes: 12 additions & 9 deletions NAS/cifar100/train.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,17 +25,17 @@

print = functools.partial(print, flush=True)

parser = argparse.ArgumentParser("ResNet20-cifar100")
parser = argparse.ArgumentParser("cifar")

parser.add_argument('--local_rank', type=int, default=0,
help='local rank for distributed training')
parser.add_argument('--batch_size', type=int, default=128,
parser.add_argument('--batch_size', type=int, default=256,
help='batch size') # 8192
parser.add_argument('--learning_rate', type=float,
default=0.1, help='init learning rate') # 0.8
parser.add_argument('--num_workers', type=int,
default=3, help='num of workers')
parser.add_argument('--model-type', type=str, default="densenet",
parser.add_argument('--model-type', type=str, default="resnet50",
help="type of model(sample masked dynamic independent slimmable original)")

parser.add_argument('--finetune', action='store_true',
Expand All @@ -51,9 +51,9 @@
default=5e-4, help='weight decay')

parser.add_argument('--report_freq', type=float,
default=2, help='report frequency')
default=5, help='report frequency')
parser.add_argument('--gpu', type=int, default=0, help='gpu device id')
parser.add_argument('--epochs', type=int, default=200,
parser.add_argument('--epochs', type=int, default=300,
help='num of training epochs')

parser.add_argument('--classes', type=int, default=100,
Expand All @@ -66,7 +66,7 @@
parser.add_argument('--config', help="configuration file",
type=str, default="configs/meta.yml")
parser.add_argument('--save_dir', type=str,
help="save exp floder name", default="densenet")
help="save exp floder name", default="resnet50")
args = parser.parse_args()

# process argparse & yaml
Expand Down Expand Up @@ -155,7 +155,7 @@ def main():
weight_decay=args.weight_decay)

scheduler = torch.optim.lr_scheduler.CosineAnnealingLR(
optimizer, 200, eta_min=0.0005)
optimizer, 300, eta_min=0.0005)

# Prepare data
train_loader = get_train_loader(
Expand Down Expand Up @@ -316,8 +316,11 @@ def train(train_dataloader, val_dataloader, optimizer, scheduler, model, archloa
writer.add_scalar("Train/acc1", top1_.avg, step +
len(train_dataloader) * epoch * args.batch_size)

logging.info('{} |=> Train loss = {} Train acc = {}'.format(
losses_.avg, top1_.avg))
now = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time()))

if step % 10 == 0:
logging.info('{} |=> Train loss = {} Train acc = {}'.format(now,
losses_.avg, top1_.avg))


def infer(train_loader, val_loader, model, criterion, archloader, args, epoch):
Expand Down

0 comments on commit 2730a1f

Please sign in to comment.