def test_cross_layer_equalization_mobilenet_v2(self): torch.manual_seed(10) model = MobileNetV2().to(torch.device('cpu')) print(model) model = model.eval() equalize_model(model, (1, 3, 224, 224))
def cross_layer_equalization_auto(): model = models.resnet18(pretrained=True) input_shape = (1, 3, 224, 224) model = model.eval() # Performs BatchNorm fold, Cross layer scaling and High bias folding equalize_model(model, input_shape)
def visualize_changes_in_model_after_and_before_cle(): """ Code example for visualizating model before and after Cross Layer Equalization optimization """ visualization_url, process = start_bokeh_server_session(8002) model = models.resnet18(pretrained=True).to(torch.device('cpu')) model = model.eval() model_copy = copy.deepcopy(model) batch_norm_fold.fold_all_batch_norms(model_copy, (1, 3, 224, 224)) equalize_model(model, (1, 3, 224, 224)) visualize_model.visualize_changes_after_optimization( model_copy, model, visualization_url)
def test_cross_layer_equalization_mobilenet_v2_visualize_after_optimization( self): bokeh_visualizations_url, process = start_bokeh_server_session(8006) torch.manual_seed(10) model = MobileNetV2().to(torch.device('cpu')) bokeh_session = BokehServerSession(bokeh_visualizations_url, session_id="cle") model = model.eval() model_copy = copy.deepcopy(model) # model_copy_again = copy.deepcopy(model) batch_norm_fold.fold_all_batch_norms(model_copy, (1, 3, 224, 224)) equalize_model(model, (1, 3, 224, 224)) visualize_model.visualize_changes_after_optimization( model_copy, model, bokeh_visualizations_url) bokeh_session.server_session.close("test complete") os.killpg(os.getpgid(process.pid), signal.SIGTERM)
def test_cross_layer_equalization_vgg(self): torch.manual_seed(10) model = models.vgg16().to(torch.device('cpu')) model = model.eval() equalize_model(model, (1, 3, 224, 224))
def run_pytorch_cross_layer_equalization(config, model): cross_layer_equalization.equalize_model(model.cpu(), config.input_shape) return model