Skip to content

Commit

Permalink
updated the sample to use INC 2.0 and TF 2.0 (#2301)
Browse files Browse the repository at this point in the history
  • Loading branch information
Ankur-singh committed Jun 3, 2024
1 parent 667ba22 commit 95cf11c
Show file tree
Hide file tree
Showing 6 changed files with 1,881 additions and 112 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,7 @@ def create_model(w, c, classes):
model.add(Dense(classes))
model.add(Activation('softmax'))

opt = Adam(lr=0.001)
opt = Adam(learning_rate=0.001)
model.compile(optimizer=opt, loss='categorical_crossentropy', metrics=['accuracy'])
return model

Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,29 +1,18 @@
import sys

try:
import neural_compressor as inc
print("neural_compressor version {}".format(inc.__version__))
except:
try:
import lpot as inc
print("LPOT version {}".format(inc.__version__))
except:
import ilit as inc
print("iLiT version {}".format(inc.__version__))

if inc.__version__ == '1.2':
print("This script doesn't support LPOT 1.2, please install LPOT 1.1, 1.2.1 or newer")
sys.exit(1)
import neural_compressor as inc
print("neural_compressor version {}".format(inc.__version__))

import alexnet
import math
import yaml
import mnist_dataset
from neural_compressor.quantization import fit
from neural_compressor.config import PostTrainingQuantConfig, TuningCriterion, AccuracyCriterion


def save_int8_frezon_pb(q_model, path):
from tensorflow.python.platform import gfile
f = gfile.GFile(path, 'wb')
f.write(q_model.as_graph_def().SerializeToString())
f.write(q_model.graph.as_graph_def().SerializeToString())
print("Save to {}".format(path))


Expand All @@ -44,23 +33,31 @@ def __iter__(self):
yield x_test[begin:], label_test[begin:]


def auto_tune(input_graph_path, yaml_config, batch_size):
def auto_tune(input_graph_path, config, batch_size):
fp32_graph = alexnet.load_pb(input_graph_path)
quan = inc.Quantization(yaml_config)
dataloader = Dataloader(batch_size)

q_model = quan(
fp32_graph,
q_dataloader=dataloader,
eval_func=None,
eval_dataloader=dataloader)
assert(dataloader)

tuning_criterion = TuningCriterion(**config["tuning_criterion"])
accuracy_criterion = AccuracyCriterion(**config["accuracy_criterion"])
q_model = fit(
model=input_graph_path,
conf=PostTrainingQuantConfig(**config["quant_config"],
tuning_criterion=tuning_criterion,
accuracy_criterion=accuracy_criterion,
),
calib_dataloader=dataloader,
)
return q_model


yaml_file = "alexnet.yaml"
batch_size = 200
fp32_frezon_pb_file = "fp32_frezon.pb"
int8_pb_file = "alexnet_int8_model.pb"

q_model = auto_tune(fp32_frezon_pb_file, yaml_file, batch_size)
with open("quant_config.yaml") as f:
config = yaml.safe_load(f.read())
config

q_model = auto_tune(fp32_frezon_pb_file, config, batch_size)
save_int8_frezon_pb(q_model, int8_pb_file)
Loading

0 comments on commit 95cf11c

Please sign in to comment.