# -------------------------------------------------------- # RepVGG: Making VGG-style ConvNets Great Again (https://openaccess.thecvf.com/content/CVPR2021/papers/Ding_RepVGG_Making_VGG-Style_ConvNets_Great_Again_CVPR_2021_paper.pdf) # Github source: https://github.com/DingXiaoH/RepVGG # Licensed under The MIT License [see LICENSE for details] # -------------------------------------------------------- import torch import torch.nn as nn from repvgg import create_RepVGG_B1 if __name__ == '__main__': x = torch.randn(1, 3, 224, 224) model = create_RepVGG_B1(deploy=False) model.eval() for module in model.modules(): if isinstance(module, torch.nn.BatchNorm2d): nn.init.uniform_(module.running_mean, 0, 0.1) nn.init.uniform_(module.running_var, 0, 0.1) nn.init.uniform_(module.weight, 0, 0.1) nn.init.uniform_(module.bias, 0, 0.1) train_y = model(x) for module in model.modules(): if hasattr(module, 'switch_to_deploy'): module.switch_to_deploy() print(model) deploy_y = model(x) print('========================== The diff is') print(((train_y - deploy_y) ** 2).sum())