Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
40 commits
Select commit Hold shift + click to select a range
5605a21
adding data loader for ffcv imagenet
ksreenivasan Mar 21, 2022
9567851
more bugfixes
ksreenivasan Mar 21, 2022
a52a975
adding missing imports
ksreenivasan Mar 21, 2022
ef76d9b
adding code for get_resolution
ksreenivasan Mar 21, 2022
71f3e3e
minor bugfix: changing scope of constants
ksreenivasan Mar 22, 2022
0509faa
changing ch to torch
ksreenivasan Mar 22, 2022
8c69e3f
Merge branch 'ffcv_imagenet_serial' of github.com:ksreenivasan/prunin…
ksreenivasan Mar 22, 2022
fa1c056
data loader seems to be working!
ksreenivasan Mar 22, 2022
8107428
changing conv_type to use half precision for ffcv
ksreenivasan Mar 22, 2022
602ad02
adding config for ffcv imagenet
ksreenivasan Mar 22, 2022
dae1a71
adding script to exec imagenet
ksreenivasan Mar 22, 2022
6055c68
adding get_layers for resnet18 imagenet
ksreenivasan Mar 22, 2022
40f423e
things work but loss is infinity
ksreenivasan Mar 22, 2022
e5d18f0
fixing up scaler issues
ksreenivasan Mar 26, 2022
30486fa
adding resnet50 config and amp for validate
ksreenivasan Mar 28, 2022
c44b673
fixing mixed_prec finetune bug
ksreenivasan Apr 1, 2022
c3747c7
sanity check code for prospr
ksreenivasan Apr 4, 2022
9711ca3
need to lower finetune_lr otherwise the model gets rekt
ksreenivasan Apr 6, 2022
06c15cd
adding finetune_only feature
ksreenivasan Apr 6, 2022
bb06725
deleting original ffcv file
ksreenivasan Apr 6, 2022
cb7dbf8
updating ffcv installation instructions
ksreenivasan Apr 7, 2022
8ddafce
adding regular imagenet training config
ksreenivasan Apr 7, 2022
ba9c35e
adding imagenet only config
Apr 7, 2022
29a545d
modifying config to 5% target sparsity
ksreenivasan Apr 7, 2022
c51024a
commenting ffcv for full imagenet
ksreenivasan Apr 7, 2022
edc87b8
changing benchmark for faster imagenet run
ksreenivasan Apr 7, 2022
a5870dd
Merge branch 'regular_imagenet_serial' of github.com:ksreenivasan/pru…
Apr 7, 2022
70ad77a
merging exec
ksreenivasan Apr 7, 2022
fdc6686
merging conflicts in exec script
ksreenivasan Apr 7, 2022
bb85969
bringing back ffcv
ksreenivasan Apr 7, 2022
3a7291b
Merge branch 'master' into ffcv_imagenet_serial
ksreenivasan Apr 7, 2022
84ada35
Merge branch 'ffcv_imagenet_serial' of github.com:ksreenivasan/prunin…
ksreenivasan Apr 7, 2022
2adb1d8
adding config for imagenet sparsity 20%
ksreenivasan Apr 8, 2022
864baeb
Merge branch 'ffcv_imagenet_serial' of github.com:ksreenivasan/prunin…
ksreenivasan Apr 8, 2022
c64c23d
adding actual_val_loader so code doesn't break
ksreenivasan Apr 8, 2022
3efec34
pushing configs for ffcv_imagenet_serial
ksreenivasan Apr 13, 2022
552699a
Merge branch 'ffcv_imagenet_serial' of github.com:ksreenivasan/prunin…
ksreenivasan Apr 13, 2022
dd2b451
pushing ffcv configs
ksreenivasan Apr 13, 2022
9c71bb5
Merge branch 'ffcv_imagenet_serial' of github.com:ksreenivasan/prunin…
ksreenivasan Apr 13, 2022
68fbb9a
handling conflicts
ksreenivasan Apr 13, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 6 additions & 5 deletions args_helper.py
Original file line number Diff line number Diff line change
Expand Up @@ -282,8 +282,6 @@ def parse_arguments(self, jupyter_mode=False):
default=1.0,
help="portion of additional width compared with original width"
)


parser.add_argument(
"--hidden-size",
type=int,
Expand Down Expand Up @@ -899,28 +897,31 @@ def parse_arguments(self, jupyter_mode=False):
default=False,
help="Only run sanity checks on the files in specific directory or subdirectories"
)

parser.add_argument(
"--invert-sanity-check",
action="store_true",
default=False,
help="Enable this to run the inverted sanity check (for HC)"
)

parser.add_argument(
"--sanity-folder",
default=None,
type=str,
metavar="PATH",
help="directory(s) to access for only sanity check",
)

parser.add_argument(
"--sr-version",
default=1,
type=int,
help="smart ratio version number (1, 2, ...)",
)
parser.add_argument(
"--only-finetune",
action="store_true",
default=False,
help="Enable this to skip pruning and jump to finetune. Typically paired with --resume"
)
parser.add_argument(
"--use-full-data",
action="store_true",
Expand Down
66 changes: 66 additions & 0 deletions configs/hypercube/resnet18/imagenet/resnet18_sparsity_10.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
subfolder: ffcv_imagenet_resnet18
# trial_num: 1
#lam_finetune_loss: 1
#num_step_finetune: 5

# Hypercube optimization
algo: 'hc_iter'
iter_period: 5

# Architecture
arch: ResNet18

# ===== Dataset ===== #
dataset: FfcvImageNet
name: resnet18_ffcv
data: /workspace/ffcv-imagenet/data/

# ===== Learning Rate Policy ======== #
optimizer: sgd
lr: 0.1 #0.01
lr_policy: cosine_lr #constant_lr #multistep_lr
fine_tune_lr: 0.01
fine_tune_lr_policy: multistep_lr

# ===== Network training config ===== #
epochs: 50
wd: 0.0
momentum: 0.9
batch_size: 128
mixed_precision: True

# ===== Sparsity =========== #
conv_type: SubnetConv
bn_type: NonAffineBatchNorm
freeze_weights: True
prune_type: BottomK
# enter target sparsity here
target_sparsity: 10
# decide if you want to "unflag"
unflag_before_finetune: False
init: signed_constant
score_init: unif #skew #half #bimodal #skew # bern
scale_fan: False #True

# ===== Rounding ===== #
round: naive
noise: True
noise_ratio: 0

# ===== Quantization ===== #
hc_quantized: True
quantize_threshold: 0.5

# ===== Regularization ===== #
regularization: L2
lmbda: 0.000001 # 1e-4 #0.00005 # 5e-5

# ===== Hardware setup ===== #
workers: 4
gpu: 0

# ===== Checkpointing ===== #
checkpoint_at_prune: False

# ==== sanity check ==== #
skip_sanity_checks: True
64 changes: 64 additions & 0 deletions configs/hypercube/resnet20/sreeniva_resnet20_1_4_best.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
# subfolder: sreeniva_hc_1_44_best
# trial_num: 1
#lam_finetune_loss: 1
#num_step_finetune: 5

# Hypercube optimization
algo: 'hc_iter'
iter_period: 5

# Architecture
arch: resnet20

# ===== Dataset ===== #
dataset: CIFAR10
name: resnet20_quantized_iter_hc

# ===== Learning Rate Policy ======== #
optimizer: sgd
lr: 0.1 #0.01
lr_policy: cosine_lr #constant_lr #multistep_lr
fine_tune_lr: 0.01
fine_tune_lr_policy: multistep_lr

# ===== Network training config ===== #
epochs: 150
wd: 0.0
momentum: 0.9
batch_size: 128

# ===== Sparsity =========== #
conv_type: SubnetConv
bn_type: NonAffineBatchNorm
freeze_weights: True
prune_type: BottomK
# enter target sparsity here
target_sparsity: 1.44
# decide if you want to "unflag"
unflag_before_finetune: False
init: signed_constant
score_init: unif #skew #half #bimodal #skew # bern
scale_fan: False #True

# ===== Rounding ===== #
round: naive
noise: True
noise_ratio: 0

# ===== Quantization ===== #
hc_quantized: True
quantize_threshold: 0.5

# ===== Regularization ===== #
regularization: L2
lmbda: 0.0001 # 1e-4 #0.00005 # 5e-5

# ===== Hardware setup ===== #
workers: 4
gpu: 2

# ===== Checkpointing ===== #
checkpoint_at_prune: True

# ==== sanity check ==== #
skip_sanity_checks: True
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
subfolder: ffcv_imagenet_resnet50_finetune_only
# trial_num: 1
#lam_finetune_loss: 1
#num_step_finetune: 5

# Hypercube optimization
algo: 'hc_iter'
iter_period: 5

# Architecture
arch: ResNet50

# ===== Dataset ===== #
dataset: FfcvImageNet
name: resnet18_ffcv
data: /workspace/ffcv-imagenet/data/

# ===== Learning Rate Policy ======== #
optimizer: sgd
lr: 0.4 #0.01
lr_policy: cosine_lr #constant_lr #multistep_lr
fine_tune_lr: 0.01
fine_tune_lr_policy: multistep_lr

# ===== Network training config ===== #
epochs: 88
wd: 0.0
momentum: 0.9
batch_size: 128
mixed_precision: True
only_finetune: True
resume: results/resnet50_ffcv_bad_finetune/model_before_finetune.pth

# ===== Sparsity =========== #
conv_type: SubnetConv
bn_type: NonAffineBatchNorm
freeze_weights: True
prune_type: BottomK
# enter target sparsity here
target_sparsity: 10
# decide if you want to "unflag"
unflag_before_finetune: False
init: signed_constant
score_init: unif #skew #half #bimodal #skew # bern
scale_fan: False #True

# ===== Rounding ===== #
round: naive
noise: True
noise_ratio: 0

# ===== Quantization ===== #
hc_quantized: True
quantize_threshold: 0.5

# ===== Regularization ===== #
regularization: L2
lmbda: 0.000001 # 1e-4 #0.00005 # 5e-5

# ===== Hardware setup ===== #
workers: 6
gpu: 0

# ===== Checkpointing ===== #
checkpoint_at_prune: False

# ==== sanity check ==== #
skip_sanity_checks: True
67 changes: 67 additions & 0 deletions configs/hypercube/resnet50/ffcv_imagenet/resnet50_sparsity_20.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
subfolder: ffcv_imagenet_resnet50_sp20
# trial_num: 1
#lam_finetune_loss: 1
#num_step_finetune: 5

# Hypercube optimization
algo: 'hc_iter'
iter_period: 5

# Architecture
arch: ResNet50

# ===== Dataset ===== #
dataset: FfcvImageNet
name: resnet50_ffcv_imagenet
data: /workspace/ffcv-imagenet/data/

# ===== Learning Rate Policy ======== #
optimizer: sgd
lr: 0.1 #0.01
lr_policy: cosine_lr #constant_lr #multistep_lr
fine_tune_lr: 0.01
fine_tune_lr_policy: multistep_lr

# ===== Network training config ===== #
epochs: 88
wd: 0.0
momentum: 0.9
batch_size: 256
mixed_precision: True

# ===== Sparsity =========== #
conv_type: SubnetConv
bn_type: NonAffineBatchNorm
freeze_weights: True
prune_type: BottomK
# enter target sparsity here
target_sparsity: 20
# decide if you want to "unflag"
unflag_before_finetune: False
init: signed_constant
score_init: unif #skew #half #bimodal #skew # bern
scale_fan: False #True
use_full_data: True

# ===== Rounding ===== #
round: naive
noise: True
noise_ratio: 0

# ===== Quantization ===== #
hc_quantized: True
quantize_threshold: 0.5

# ===== Regularization ===== #
regularization: L2
lmbda: 0.000001 # 1e-4 #0.00005 # 5e-5

# ===== Hardware setup ===== #
workers: 4
gpu: 1

# ===== Checkpointing ===== #
checkpoint_at_prune: False

# ==== sanity check ==== #
skip_sanity_checks: False
66 changes: 66 additions & 0 deletions configs/hypercube/resnet50/ffcv_imagenet/resnet50_sparsity_5.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
subfolder: ffcv_imagenet_resnet50
# trial_num: 1
#lam_finetune_loss: 1
#num_step_finetune: 5

# Hypercube optimization
algo: 'hc_iter'
iter_period: 5

# Architecture
arch: ResNet50

# ===== Dataset ===== #
dataset: FfcvImageNet
name: resnet18_ffcv
data: /workspace/ffcv-imagenet/data/

# ===== Learning Rate Policy ======== #
optimizer: sgd
lr: 0.4 #0.01
lr_policy: cosine_lr #constant_lr #multistep_lr
fine_tune_lr: 0.001
fine_tune_lr_policy: multistep_lr

# ===== Network training config ===== #
epochs: 88
wd: 0.0
momentum: 0.9
batch_size: 256
mixed_precision: True

# ===== Sparsity =========== #
conv_type: SubnetConv
bn_type: NonAffineBatchNorm
freeze_weights: True
prune_type: BottomK
# enter target sparsity here
target_sparsity: 5
# decide if you want to "unflag"
unflag_before_finetune: False
init: signed_constant
score_init: unif #skew #half #bimodal #skew # bern
scale_fan: False #True

# ===== Rounding ===== #
round: naive
noise: True
noise_ratio: 0

# ===== Quantization ===== #
hc_quantized: True
quantize_threshold: 0.5

# ===== Regularization ===== #
regularization: L2
lmbda: 0.0000001 # 1e-4 #0.00005 # 5e-5

# ===== Hardware setup ===== #
workers: 8
gpu: 0

# ===== Checkpointing ===== #
checkpoint_at_prune: False

# ==== sanity check ==== #
skip_sanity_checks: True
Loading