Skip to content

Commit 778d1f1

Browse files
authored
fix pt notebook benchmark (#1451)
Signed-off-by: Cheng, Zixuan <zixuan.cheng@intel.com>
1 parent 7f53d16 commit 778d1f1

File tree

2 files changed

+20
-5
lines changed

2 files changed

+20
-5
lines changed

examples/notebook/pytorch/Quick_Started_Notebook_of_INC_for_Pytorch.ipynb

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -285,7 +285,8 @@
285285
"from neural_compressor.config import PostTrainingQuantConfig, TuningCriterion\n",
286286
"tuning_criterion = TuningCriterion(max_trials=600)\n",
287287
"conf = PostTrainingQuantConfig(approach=\"static\", tuning_criterion=tuning_criterion)\n",
288-
"q_model = fit(model, conf=conf, calib_dataloader=eval_dataloader, eval_func=eval_func)"
288+
"q_model = fit(model, conf=conf, calib_dataloader=eval_dataloader, eval_func=eval_func)\n",
289+
"q_model.save(\"./saved_results\")"
289290
]
290291
},
291292
{
@@ -304,10 +305,10 @@
304305
"outputs": [],
305306
"source": [
306307
"# fp32 benchmark\n",
307-
"!{sys.executable} benchmark.py --input_model ./pytorch_model.bin 2>&1|tee fp32_benchmark.log\n",
308+
"!{sys.executable} benchmark.py 2>&1|tee fp32_benchmark.log\n",
308309
"\n",
309310
"# int8 benchmark\n",
310-
"!{sys.executable} benchmark.py --input_model ./saved_results/best_model.pt 2>&1|tee int8_benchmark.log\n"
311+
"!{sys.executable} benchmark.py --input_model saved_results 2>&1|tee int8_benchmark.log\n"
311312
]
312313
}
313314
],

examples/notebook/pytorch/benchmark.py

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ def compute_metrics(p: EvalPrediction):
7373

7474
if __name__ == "__main__":
7575
parser = argparse.ArgumentParser(__doc__)
76-
parser.add_argument("--input_model", type=str, required=True)
76+
parser.add_argument("--input_model", type=str, required=False, default=None)
7777
args = parser.parse_args()
7878

7979
# Initialize our Trainer
@@ -87,9 +87,23 @@ def compute_metrics(p: EvalPrediction):
8787
)
8888

8989
eval_dataloader = trainer.get_eval_dataloader()
90+
if eval_dataloader.batch_size is None:
91+
def _build_inc_dataloader(dataloader):
92+
class INCDataLoader:
93+
__iter__ = dataloader.__iter__
94+
def __init__(self) -> None:
95+
self.dataloader = dataloader
96+
self.batch_size = dataloader.total_batch_size
97+
return INCDataLoader()
98+
eval_dataloader = _build_inc_dataloader(eval_dataloader)
99+
batch_size = eval_dataloader.batch_size
100+
101+
if args.input_model:
102+
from neural_compressor.utils.pytorch import load
103+
model = load(args.input_model, model, dataloader=eval_dataloader)
90104

91105
b_conf = BenchmarkConfig(warmup=5,
92106
iteration=100,
93107
cores_per_instance=4,
94108
num_of_instance=1)
95-
benchmark.fit(args.input_model, b_conf, b_dataloader=eval_dataloader)
109+
benchmark.fit(model, b_conf, b_dataloader=eval_dataloader)

0 commit comments

Comments
 (0)