Skip to content

Commit 1a710fe

Browse files
committed
Merge branch 'win_multi_instance_fix' of https://github.com/intel/neural-compressor into win_multi_instance_fix
2 parents 36a827f + 4c469ed commit 1a710fe

File tree

5 files changed

+71
-38
lines changed

5 files changed

+71
-38
lines changed

examples/pytorch/object_detection/maskrcnn/quantization/ptq/fx/pytorch/tools/test_net.py

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -159,14 +159,13 @@ def eval_func(q_model):
159159
is_distributed=distributed, is_calib=True)
160160
cal_dataloader = MASKRCNN_DataLoader(data_loaders_val)
161161
if args.tune:
162-
from neural_compressor.experimental import Quantization, common
163-
quantizer = Quantization("./conf.yaml")
164-
quantizer.model = common.Model(model,
165-
**{'prepare_custom_config_dict': prepare_custom_config_dict}
166-
)
167-
quantizer.calib_dataloader = cal_dataloader
168-
quantizer.eval_func = eval_func
169-
q_model = quantizer.fit()
162+
from neural_compressor import quantization
163+
from neural_compressor.experimental import common
164+
from neural_compressor.config import PostTrainingQuantConfig
165+
model = common.Model(model, **{'prepare_custom_config_dict': prepare_custom_config_dict})
166+
conf = PostTrainingQuantConfig(approach="static", backend="pytorch_fx", calibration_sampling_size=[50])
167+
q_model = quantization.fit(model, conf=conf, calib_dataloader=cal_dataloader, eval_func=eval_func)
168+
170169
q_model.save(args.tuned_checkpoint)
171170
return
172171

examples/pytorch/object_detection/ssd_resnet34/quantization/ptq/fx/python/main.py

Lines changed: 21 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,8 @@
55
from __future__ import division
66
from __future__ import print_function
77
from __future__ import unicode_literals
8-
from neural_compressor.experimental import Quantization, common
8+
from neural_compressor import quantization
9+
from neural_compressor.config import PostTrainingQuantConfig, TuningCriterion, AccuracyCriterion, AccuracyLoss
910
from queue import Queue
1011

1112
import argparse
@@ -586,10 +587,25 @@ def benchmark(model):
586587
os.chdir(os.path.join(sys.path[0], ".."))
587588
if args.tune:
588589
# Quantization with Neural Compressor
589-
quantizer = Quantization("./conf.yaml")
590-
quantizer.model = common.Model(raw_model)
591-
quantizer.eval_func = eval_func
592-
q_model = quantizer.fit()
590+
import torchvision.datasets as dset
591+
import torchvision.transforms as transforms
592+
import torch
593+
dataset = dset.CocoDetection(root=args.dataset_path + "/val2017",
594+
annFile=args.dataset_path +
595+
"/annotations/instances_val2017.json",
596+
transform=transforms.ToTensor())
597+
dataloader = torch.utils.data.DataLoader(dataset, batch_size=1)
598+
599+
tuning_criterion = TuningCriterion(timeout=0, max_trials=600)
600+
accuracy_criterion = AccuracyCriterion(tolerable_loss=AccuracyLoss(0.05))
601+
602+
conf = PostTrainingQuantConfig(approach="static", backend="pytorch_fx",
603+
calibration_sampling_size=[50,100,500], tuning_criterion=tuning_criterion, accuracy_criterion=accuracy_criterion)
604+
q_model = quantization.fit(raw_model,
605+
conf=conf,
606+
eval_func=eval_func,
607+
calib_dataloader=dataloader
608+
)
593609
q_model.save(args.tuned_checkpoint)
594610

595611
elif args.int8:

examples/pytorch/object_detection/ssd_resnet34/quantization/ptq/ipex/infer.py

Lines changed: 17 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -624,16 +624,23 @@ def coco_eval(model):
624624
return False
625625

626626
if args.tune:
627-
ssd_r34.eval()
628-
ssd_r34.model = optimization.fuse(ssd_r34.model)
629-
from neural_compressor.experimental import Quantization, common
630-
quantizer = Quantization("./conf.yaml")
631-
quantizer.model = common.Model(ssd_r34)
632-
quantizer.calib_dataloader = val_dataloader
633-
quantizer.eval_func = coco_eval
634-
q_model = quantizer.fit()
635-
q_model.save(args.tuned_checkpoint)
636-
return
627+
ssd_r34.eval()
628+
ssd_r34.model = optimization.fuse(ssd_r34.model)
629+
630+
from neural_compressor import quantization
631+
from neural_compressor.config import PostTrainingQuantConfig, TuningCriterion, AccuracyCriterion, AccuracyLoss
632+
tuning_criterion = TuningCriterion(timeout=0, max_trials=600)
633+
accuracy_criterion = AccuracyCriterion(tolerable_loss=AccuracyLoss(0.05))
634+
635+
conf = PostTrainingQuantConfig(approach="static", backend="pytorch_ipex",
636+
calibration_sampling_size=[800], tuning_criterion=tuning_criterion, accuracy_criterion=accuracy_criterion)
637+
q_model = quantization.fit(ssd_r34,
638+
conf=conf,
639+
eval_func=coco_eval,
640+
calib_dataloader=val_dataloader
641+
)
642+
q_model.save(args.tuned_checkpoint)
643+
return
637644

638645
if args.benchmark or args.accuracy_mode:
639646
ssd_r34.eval()

examples/pytorch/object_detection/ssd_resnet34/quantization/qat/fx/ssd/main.py

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -300,7 +300,9 @@ def eval_func(model):
300300
return current_accuracy
301301

302302
if args.tune:
303-
def training_func_for_nc(model):
303+
def training_func_for_nc(compression_manager, model, dataloader=None):
304+
compression_manager.callbacks.on_train_begin(dataloader=dataloader)
305+
304306
current_lr = args.lr * (global_batch_size / 32)
305307
current_momentum = 0.9
306308
optim = torch.optim.SGD(model.parameters(), lr=current_lr,
@@ -392,15 +394,18 @@ def training_func_for_nc(model):
392394
print("Iteration: {:6d}, Loss function: {:5.3f}, Average Loss: {:.3f}"\
393395
.format(iter_num, loss.item(), avg_loss))
394396
iter_num += 1
397+
compression_manager.callbacks.on_train_end()
395398
return model
396399

397-
from neural_compressor.experimental import Quantization, common
398-
quantizer = Quantization("./conf.yaml")
399-
quantizer.model = common.Model(ssd300)
400-
quantizer.eval_func = eval_func
401-
quantizer.q_func = training_func_for_nc
402-
quantizer.calib_dataloader = val_dataloader
403-
q_model = quantizer.fit()
400+
from neural_compressor import quantization
401+
from neural_compressor.config import QuantizationAwareTrainingConfig
402+
import copy
403+
404+
conf = QuantizationAwareTrainingConfig(backend="pytorch_fx")
405+
from neural_compressor.training import prepare_compression
406+
compression_manager = prepare_compression(copy.deepcopy(ssd300), conf)
407+
q_model = training_func_for_nc(compression_manager, compression_manager.model, val_dataloader)
408+
404409
q_model.save(args.tuned_checkpoint)
405410

406411
if args.benchmark or args.accuracy:

examples/pytorch/object_detection/yolo_v3/quantization/ptq/eager/test.py

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -169,18 +169,24 @@ def eval_func(model):
169169

170170
model.eval()
171171
model.fuse_model()
172-
from neural_compressor.experimental import Quantization, common
172+
173+
from neural_compressor import quantization
174+
from neural_compressor.config import PostTrainingQuantConfig, TuningCriterion, AccuracyCriterion, AccuracyLoss
173175
dataset = ListDataset(valid_path, img_size=opt.img_size, augment=False, multiscale=False)
174176
dataloader = torch.utils.data.DataLoader(
175177
dataset, batch_size=opt.batch_size, shuffle=False, num_workers=1, collate_fn=dataset.collate_fn
176178
)
177179
nc_dataloader = yolo_dataLoader(dataloader)
178-
quantizer = Quantization("./conf.yaml")
179-
quantizer.model = common.Model(model)
180-
quantizer.eval_func = eval_func
181-
quantizer.calib_dataloader = nc_dataloader
182-
183-
q_model = quantizer.fit()
180+
tuning_criterion = TuningCriterion(timeout=0)
181+
accuracy_criterion = AccuracyCriterion(tolerable_loss=AccuracyLoss(0.05))
182+
183+
conf = PostTrainingQuantConfig(approach="static", backend="pytorch",
184+
tuning_criterion=tuning_criterion, accuracy_criterion=accuracy_criterion)
185+
q_model = quantization.fit(model,
186+
conf=conf,
187+
eval_func=eval_func,
188+
calib_dataloader=nc_dataloader
189+
)
184190
q_model.save(opt.tuned_checkpoint)
185191
exit(0)
186192

0 commit comments

Comments
 (0)