Skip to content

Instantly share code, notes, and snippets.

@amaarora
Created March 30, 2021 20:13
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save amaarora/2c6199c3441c0d72f356f39fb9f59611 to your computer and use it in GitHub Desktop.
Save amaarora/2c6199c3441c0d72f356f39fb9f59611 to your computer and use it in GitHub Desktop.
SPP ResNet V2 600 using timm and PyTorch Hooks
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import torch \n",
"import fnmatch\n",
"from torchvision.models.resnet import _resnet, Bottleneck\n",
"from timm.utils.model import avg_ch_var, avg_ch_var_residual, avg_sq_ch_mean\n",
"from matplotlib import pyplot as plt"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"def resnet_v2_600(pretrained=False, progress=False, **kwargs): \n",
" return _resnet('resnet_v2_600', Bottleneck, [50, 50, 50, 50], pretrained, progress, **kwargs)"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"# one giant model\n",
"model = resnet_v2_600()"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [],
"source": [
"class ActivationStatsHook:\n",
" def __init__(self, model, hook_fn_locs, hook_fns):\n",
" self.model = model\n",
" self.hook_fn_locs = hook_fn_locs\n",
" self.hook_fns = hook_fns\n",
" self.stats = dict((hook_fn.__name__, []) for hook_fn in hook_fns)\n",
" for hook_fn_loc, hook_fn in zip(hook_fn_locs, hook_fns): \n",
" self.register_hook(hook_fn_loc, hook_fn)\n",
"\n",
" def _create_hook(self, hook_fn):\n",
" def append_activation_stats(module, input, output):\n",
" out = hook_fn(module, input, output)\n",
" self.stats[hook_fn.__name__].append(out)\n",
" return append_activation_stats\n",
" \n",
" def register_hook(self, hook_fn_loc, hook_fn):\n",
" for name, module in self.model.named_modules():\n",
" if not any([fnmatch.fnmatch(name, hook_loc) for hook_loc in hook_fn_loc]):\n",
" continue\n",
" module.register_forward_hook(self._create_hook(hook_fn))"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [],
"source": [
"def extract_spp_stats(model, \n",
" hook_fn_locs,\n",
" hook_fns, \n",
" input_shape=[8, 3, 224, 224]):\n",
" x = torch.normal(0., 1., input_shape)\n",
" hook = ActivationStatsHook(model, hook_fn_locs=hook_fn_locs, hook_fns=hook_fns)\n",
" _ = model(x)\n",
" return hook.stats"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"scrolled": true
},
"outputs": [],
"source": [
"stats = extract_spp_stats(model, [['layer?.?', 'layer?.??'], ['layer?.?', 'layer?.??'], ['layer?.?.bn3', 'layer?.??.bn3']],\n",
" hook_fns=[avg_sq_ch_mean, avg_ch_var, avg_ch_var_residual], \n",
" input_shape=[8, 3, 224, 224])"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 1296x216 with 3 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"# plot stats\n",
"fig, ax = plt.subplots(1, 3, figsize=(18,3), sharey=True)\n",
"ax[0].plot(stats['avg_sq_ch_mean'], label='avg_sq_ch_mean');\n",
"ax[0].set_ylabel('Average Square Channel Mean'); ax[0].grid();\n",
"ax[1].plot(stats['avg_ch_var'], label='avg_ch_var');\n",
"ax[1].set_ylabel('Average Channel Variance'); ax[1].grid();\n",
"ax[2].plot(stats['avg_ch_var_residual'], label='avg_ch_var_residual');\n",
"ax[2].set_ylabel('Residual Average Channel Variance'); ax[2].grid();"
]
}
],
"metadata": {
"gist": {
"data": {
"description": "git_repos/nbs/plotting_spps.ipynb",
"public": true
},
"id": ""
},
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.8.5"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment