forked from intel/neural-compressor
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathpruning.yaml
115 lines (103 loc) · 5.01 KB
/
pruning.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
#
# Copyright (c) 2021 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
version: 1.0 # optional. reserved for future use. if not specified, a supported version would be written back to user yaml.
model: # mandatory. neural_compressor uses this module name and framework name to decide where to save tuning history and deploy yaml.
name: resnet50v1.5
framework: pytorch # mandatory. supported values are tensorflow, pytorch, pytorch_fx, pytorch_ipex, onnxrt_integer, onnxrt_qlinear or mxnet; allow new framework backend extension.
device: cpu # optional. default value is cpu. other value is gpu.
pruning: # mandatory only for pruning.
train:
start_epoch: 0
end_epoch: 10
iteration: 100
frequency: 2
hostfile: /path/to/host/file # reserved for multi-node training.
dataloader:
batch_size: 256
dataset:
ImageFolder:
root: /path/to/imagenet/train
transform:
RandomResizedCrop:
size: 224
RandomHorizontalFlip:
ToTensor:
Normalize:
mean: [0.485, 0.456, 0.406]
std: [0.229, 0.224, 0.225]
criterion:
CrossEntropyLoss:
reduction: None
optimizer:
SGD:
learning_rate: 0.1
momentum: 0.9
weight_decay: 0.0004
nesterov: False
approach:
weight_compression:
initial_sparsity: 0.0
target_sparsity: 0.3
pruners:
- !Pruner
initial_sparsity: 0.0
target_sparsity: 0.97
prune_type: basic_magnitude
names: ['layer1.0.conv1.weight'] # tensor name to be pruned.
start_epoch: 0
end_epoch: 2
update_frequency: 0.1
evaluation: # optional. used to config evaluation process.
accuracy: # optional. used to evaluate accuracy of passing model.
metric: # optional. required if user doesn't provide eval_func in neural_compressor.Pruning.
topk: 1 # built-in metrics are topk, map, f1, allow user to register new metric.
configs: # optional. if not specified, use all cores in 1 socket.
cores_per_instance: 28
num_of_instance: 1
dataloader: # optional. if not specified, user need construct a q_dataloader in code for neural_compressor.Pruning.
batch_size: 256
dataset:
ImageFolder:
root: /path/to/imagenet/train
transform:
RandomResizedCrop:
size: 224
RandomHorizontalFlip:
ToTensor:
Normalize:
mean: [0.485, 0.456, 0.406]
std: [0.229, 0.224, 0.225]
performance: # optional. used to benchmark performance of passing model.
warmup: 10
iteration: 100
configs:
cores_per_instance: 4
num_of_instance: 7
dataloader:
dataset:
dummy:
shape: [[128, 3, 224, 224], [128, 1, 1, 1]]
tuning:
accuracy_criterion:
relative: 0.01 # optional. default value is relative, other value is absolute. this example allows relative accuracy loss: 1%.
objective: performance # optional. objective with accuracy constraint guaranteed. default value is performance. other values are modelsize and footprint.
exit_policy:
timeout: 0 # optional. tuning timeout (seconds). default value is 0 which means early stop. combine with max_trials field to decide when to exit.
max_trials: 100 # optional. max tune times. default value is 100. combine with timeout field to decide when to exit.
random_seed: 9527 # optional. random seed for deterministic tuning.
tensorboard: True # optional. dump tensor distribution in evaluation phase for debug purpose. default value is False.
workspace:
path: /path/to/saving/directory # optional. default workspace is ./nc_workspace/current_time_stamp, saving tuning history and deploy yaml.
resume: /path/to/a/specified/snapshot/file # optional. if specified, resume from tuning history.