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)
Exemplo n.º 3
0
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))
Exemplo n.º 6
0
def run_pytorch_cross_layer_equalization(config, model):
    cross_layer_equalization.equalize_model(model.cpu(), config.input_shape)
    return model