{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import os, pickle, sys\n", "import matplotlib.pyplot as plt\n", "from scipy import stats\n", "import numpy as np\n", "import glob\n", "from prettytable import PrettyTable" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "ptcv_seed0\n", "+---------------------------------+-----------+-------+-------+--------+---------+-----------+---------+\n", "| exp | grad_norm | snip | grasp | fisher | synflow | jacob_cov | samples |\n", "+---------------------------------+-----------+-------+-------+--------+---------+-----------+---------+\n", "| pred_ptcv_svhn_pretrain.p | 0.707 | 0.576 | 0.382 | 0.168 | 0.747 | 0.34 | 49 |\n", "| pred_ptcv_cifar100.p | 0.385 | 0.509 | 0.105 | 0.469 | 0.428 | 0.145 | 54 |\n", "| pred_ptcv_svhn.p | 0.668 | 0.695 | 0.165 | 0.675 | 0.821 | 0.344 | 49 |\n", "| pred_ptcv_cifar100_pretrain.p | 0.763 | 0.813 | 0.832 | 0.595 | 0.424 | 0.595 | 54 |\n", "| pred_ptcv_cifar10.p | 0.409 | 0.521 | 0.127 | 0.471 | 0.456 | 0.046 | 56 |\n", "| pred_ptcv_cifar10_pretrain.p | 0.639 | 0.71 | 0.434 | 0.464 | 0.416 | 0.646 | 56 |\n", "| pred_ptcv_ImageNet1k.p | 0.563 | 0.644 | 0.025 | 0.675 | 0.652 | 0.343 | 191 |\n", "| pred_ptcv_ImageNet1k_pretrain.p | 0.692 | 0.67 | 0.493 | 0.725 | 0.691 | 0.141 | 191 |\n", "+---------------------------------+-----------+-------+-------+--------+---------+-----------+---------+\n", "ptcv_seed1\n", "+---------------------------------+-----------+-------+-------+--------+---------+-----------+---------+\n", "| exp | grad_norm | snip | grasp | fisher | synflow | jacob_cov | samples |\n", "+---------------------------------+-----------+-------+-------+--------+---------+-----------+---------+\n", "| pred_ptcv_svhn_pretrain.p | 0.681 | 0.541 | 0.449 | 0.148 | 0.747 | 0.324 | 49 |\n", "| pred_ptcv_cifar100.p | 0.384 | 0.501 | 0.051 | 0.483 | 0.429 | 0.059 | 54 |\n", "| pred_ptcv_svhn.p | 0.642 | 0.666 | 0.077 | 0.633 | 0.83 | 0.224 | 49 |\n", "| pred_ptcv_cifar100_pretrain.p | 0.618 | 0.646 | 0.793 | 0.543 | 0.424 | 0.62 | 54 |\n", "| pred_ptcv_cifar10.p | 0.387 | 0.505 | 0.111 | 0.476 | 0.455 | 0.101 | 56 |\n", "| pred_ptcv_cifar10_pretrain.p | 0.689 | 0.733 | 0.376 | 0.476 | 0.416 | 0.646 | 56 |\n", "| pred_ptcv_ImageNet1k.p | 0.569 | 0.64 | 0.165 | 0.668 | 0.651 | 0.292 | 191 |\n", "| pred_ptcv_ImageNet1k_pretrain.p | 0.69 | 0.671 | 0.502 | 0.73 | 0.691 | 0.14 | 191 |\n", "+---------------------------------+-----------+-------+-------+--------+---------+-----------+---------+\n", "ptcv_seed2\n", "+---------------------------------+-----------+-------+-------+--------+---------+-----------+---------+\n", "| exp | grad_norm | snip | grasp | fisher | synflow | jacob_cov | samples |\n", "+---------------------------------+-----------+-------+-------+--------+---------+-----------+---------+\n", "| pred_ptcv_svhn_pretrain.p | 0.661 | 0.526 | 0.346 | 0.115 | 0.747 | 0.357 | 49 |\n", "| pred_ptcv_cifar100.p | 0.366 | 0.474 | 0.045 | 0.48 | 0.428 | 0.093 | 54 |\n", "| pred_ptcv_svhn.p | 0.668 | 0.685 | 0.244 | 0.661 | 0.823 | 0.28 | 49 |\n", "| pred_ptcv_cifar100_pretrain.p | 0.462 | 0.608 | 0.829 | 0.465 | 0.424 | 0.636 | 54 |\n", "| pred_ptcv_cifar10.p | 0.411 | 0.511 | 0.085 | 0.496 | 0.454 | 0.056 | 56 |\n", "| pred_ptcv_cifar10_pretrain.p | 0.715 | 0.761 | 0.478 | 0.515 | 0.416 | 0.641 | 56 |\n", "| pred_ptcv_ImageNet1k.p | 0.564 | 0.633 | 0.096 | 0.669 | 0.652 | 0.327 | 191 |\n", "| pred_ptcv_ImageNet1k_pretrain.p | 0.692 | 0.671 | 0.507 | 0.732 | 0.691 | 0.177 | 191 |\n", "+---------------------------------+-----------+-------+-------+--------+---------+-----------+---------+\n", "ptcv_seed3\n", "+---------------------------------+-----------+-------+-------+--------+---------+-----------+---------+\n", "| exp | grad_norm | snip | grasp | fisher | synflow | jacob_cov | samples |\n", "+---------------------------------+-----------+-------+-------+--------+---------+-----------+---------+\n", "| pred_ptcv_svhn_pretrain.p | 0.653 | 0.529 | 0.309 | 0.102 | 0.747 | 0.349 | 49 |\n", "| pred_ptcv_cifar100.p | 0.366 | 0.48 | 0.058 | 0.474 | 0.428 | 0.204 | 54 |\n", "| pred_ptcv_svhn.p | 0.661 | 0.678 | 0.128 | 0.661 | 0.833 | 0.256 | 49 |\n", "| pred_ptcv_cifar100_pretrain.p | 0.682 | 0.783 | 0.8 | 0.664 | 0.424 | 0.621 | 54 |\n", "| pred_ptcv_cifar10.p | 0.388 | 0.495 | 0.014 | 0.479 | 0.454 | 0.036 | 56 |\n", "| pred_ptcv_cifar10_pretrain.p | 0.63 | 0.718 | 0.222 | 0.478 | 0.416 | 0.666 | 56 |\n", "| pred_ptcv_ImageNet1k.p | 0.575 | 0.647 | 0.081 | 0.669 | 0.651 | 0.301 | 191 |\n", "| pred_ptcv_ImageNet1k_pretrain.p | 0.691 | 0.668 | 0.493 | 0.725 | 0.691 | 0.171 | 191 |\n", "+---------------------------------+-----------+-------+-------+--------+---------+-----------+---------+\n", "ptcv_seed4\n", "+---------------------------------+-----------+-------+-------+--------+---------+-----------+---------+\n", "| exp | grad_norm | snip | grasp | fisher | synflow | jacob_cov | samples |\n", "+---------------------------------+-----------+-------+-------+--------+---------+-----------+---------+\n", "| pred_ptcv_svhn_pretrain.p | 0.684 | 0.549 | 0.33 | 0.17 | 0.747 | 0.334 | 49 |\n", "| pred_ptcv_cifar100.p | 0.368 | 0.484 | 0.085 | 0.492 | 0.429 | 0.207 | 54 |\n", "| pred_ptcv_svhn.p | 0.659 | 0.671 | 0.082 | 0.641 | 0.824 | 0.252 | 49 |\n", "| pred_ptcv_cifar100_pretrain.p | 0.766 | 0.831 | 0.793 | 0.755 | 0.424 | 0.62 | 54 |\n", "| pred_ptcv_cifar10.p | 0.401 | 0.533 | 0.086 | 0.473 | 0.454 | 0.06 | 56 |\n", "| pred_ptcv_cifar10_pretrain.p | 0.536 | 0.614 | 0.273 | 0.412 | 0.416 | 0.657 | 56 |\n", "| pred_ptcv_ImageNet1k.p | 0.561 | 0.627 | 0.092 | 0.659 | 0.651 | 0.272 | 191 |\n", "| pred_ptcv_ImageNet1k_pretrain.p | 0.689 | 0.67 | 0.498 | 0.73 | 0.691 | 0.164 | 191 |\n", "+---------------------------------+-----------+-------+-------+--------+---------+-----------+---------+\n", "ptcv_seed5\n", "+---------------------------------+-----------+-------+-------+--------+---------+-----------+---------+\n", "| exp | grad_norm | snip | grasp | fisher | synflow | jacob_cov | samples |\n", "+---------------------------------+-----------+-------+-------+--------+---------+-----------+---------+\n", "| pred_ptcv_svhn_pretrain.p | 0.672 | 0.557 | 0.384 | 0.186 | 0.747 | 0.271 | 49 |\n", "| pred_ptcv_cifar100.p | 0.393 | 0.503 | 0.056 | 0.493 | 0.429 | 0.05 | 54 |\n", "| pred_ptcv_svhn.p | 0.643 | 0.675 | 0.237 | 0.641 | 0.826 | 0.25 | 49 |\n", "| pred_ptcv_cifar100_pretrain.p | 0.741 | 0.776 | 0.833 | 0.676 | 0.424 | 0.615 | 54 |\n", "| pred_ptcv_cifar10.p | 0.384 | 0.484 | 0.087 | 0.468 | 0.457 | 0.004 | 56 |\n", "| pred_ptcv_cifar10_pretrain.p | 0.692 | 0.767 | 0.303 | 0.533 | 0.416 | 0.66 | 56 |\n", "| pred_ptcv_ImageNet1k.p | 0.57 | 0.638 | 0.141 | 0.67 | 0.651 | 0.337 | 191 |\n", "| pred_ptcv_ImageNet1k_pretrain.p | 0.689 | 0.671 | 0.51 | 0.723 | 0.691 | 0.178 | 191 |\n", "+---------------------------------+-----------+-------+-------+--------+---------+-----------+---------+\n" ] } ], "source": [ "root='../results_release/ptcv'\n", "\n", "alld = [f'ptcv_seed{i}' for i in range(0,6)]\n", "\n", "allm = []\n", "for dirs in alld:\n", " res = {}\n", " print(dirs)\n", " dirs = os.path.join(root,dirs)\n", " hl = ['exp']\n", " added_hl = False\n", " for fn in os.listdir(dirs):\n", " res[fn] = {}\n", " with open(os.path.join(dirs,fn),'rb') as f:\n", " ptcv=pickle.load(f)\n", " acc = []\n", " metrics = {}\n", " for d in ptcv:\n", " acc.append(d['valacc'])\n", " if len(hl) == 1:\n", " hl.extend(d['logmeasures'].keys())\n", " for m in d['logmeasures'].keys():\n", " if not m in metrics:\n", " metrics[m] = []\n", " metrics[m].append(d['logmeasures'][m])\n", " if not added_hl:\n", " added_hl = True\n", " hl.append('samples')\n", " t = PrettyTable(hl)\n", " row=[fn]\n", " for m,v in metrics.items():\n", " cr = abs(stats.spearmanr(acc,v,nan_policy='omit').correlation)\n", " res[fn][m] = cr\n", " cr=round(cr,3)\n", " row.append(cr)\n", " row.append(len(acc))\n", " t.add_row(row)\n", " allm.append(res)\n", " print(t)" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "parsed = {}\n", "for e in allm:\n", " for d,t in e.items():\n", " if not d in parsed.keys():\n", " parsed[d] = {}\n", " for m,c in t.items():\n", " if not m in parsed[d].keys():\n", " parsed[d][m] = []\n", " parsed[d][m].append(c)\n", "labels = {\n", " 'pred_ptcv_ImageNet1k.p': 'ImageNet1k',\n", " 'pred_ptcv_cifar10.p': 'CIFAR-10',\n", " 'pred_ptcv_cifar100.p': 'CIFAR100',\n", " 'pred_ptcv_svhn.p': 'SVHN', \n", " 'pred_ptcv_ImageNet1k_pretrain.p': 'ImageNet1k',\n", " 'pred_ptcv_cifar10_pretrain.p': 'CIFAR-10',\n", " 'pred_ptcv_cifar100_pretrain.p': 'CIFAR100',\n", " 'pred_ptcv_svhn_pretrain.p': 'SVHN', \n", "}\n", "pattern = {\n", " 'pred_ptcv_ImageNet1k.p': '*',\n", " 'pred_ptcv_cifar10.p': '\\\\',\n", " 'pred_ptcv_cifar100.p': '/',\n", " 'pred_ptcv_svhn.p': 'o', \n", " 'pred_ptcv_ImageNet1k_pretrain.p': '*',\n", " 'pred_ptcv_cifar10_pretrain.p': '\\\\',\n", " 'pred_ptcv_cifar100_pretrain.p': '/',\n", " 'pred_ptcv_svhn_pretrain.p': 'o', \n", "}\n", "ps=[ \"|\" , \"\\\\\" , \"/\" , \"+\" , \"-\", \".\", \"*\",\"x\", \"o\", \"O\" ]" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "width = 0.75\n", "fig, ax = plt.subplots(figsize=(8,4))\n", "i=0\n", "for exp in ['pred_ptcv_cifar10.p', 'pred_ptcv_cifar100.p', 'pred_ptcv_svhn.p', 'pred_ptcv_ImageNet1k.p']:\n", " #exp=exp.replace('.p', '_pretrain.p')\n", " bars = []\n", " for k,v in parsed[exp].items():\n", " v = np.array(v)\n", " m = np.mean(v)\n", " s = np.std(v)\n", " #print(k,m,s,v)\n", " bars.append((k,m,s))\n", " \n", " ys = [s[1] for s in bars]\n", " yerrs = [s[2] for s in bars]\n", " lbs = [s[0] for s in bars]\n", " xpos = np.arange(len(ys))\n", " i += 1\n", " \n", " ax.bar(xpos+(i-2.5)*width/4, ys, yerr=yerrs, width=width/4, align='center', alpha=0.5, label=labels[exp],\n", " hatch=pattern[exp], edgecolor='black', lw=1.,\n", " error_kw=dict(ecolor='blue', lw=2, capsize=1, capthick=2))\n", " ax.set_ylabel('Spearman $\\\\rho$')\n", " ax.set_xticks(xpos)\n", " ax.set_xticklabels(lbs)\n", " ax.yaxis.grid(True)\n", " ax.set_axisbelow(True)\n", "\n", "# Save the figure and show\n", "plt.legend(prop={'size': 10})\n", "plt.tight_layout()\n", "plt.savefig('ptcv.pdf')\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "pattern = {\n", " 'grad_norm': '\\\\',\n", " 'snip': '/',\n", " 'grasp': '-',\n", " 'fisher': '*',\n", " 'synflow': 'o', \n", " 'jacob_cov': 'x' \n", "}\n", "ps=[ \"|\" , \"\\\\\" , \"/\" , \"+\" , \"-\", \".\", \"*\",\"x\", \"o\", \"O\" ]" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "\n", "\n", "\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "width = 0.75\n", "fig, ax = plt.subplots(figsize=(9,4))\n", "i=0\n", "all_b = {}\n", "for exp in ['pred_ptcv_cifar10.p', 'pred_ptcv_cifar100.p', 'pred_ptcv_svhn.p', 'pred_ptcv_ImageNet1k.p']:\n", " #exp=exp.replace('.p', '_pretrain.p')\n", " bars = []\n", " for k,v in parsed[exp].items():\n", " v = np.array(v)\n", " m = np.mean(v)\n", " s = np.std(v)\n", " #print(k,m,s,v)\n", " bars.append((k,m,s))\n", " if k not in all_b:\n", " all_b[k] = []\n", " all_b[k].append((labels[exp],m,s))\n", " print()\n", " \n", "\n", "i=0\n", "for k,v in all_b.items():\n", " \n", " ys = [s[1] for s in v]\n", " yerrs = [s[2] for s in v]\n", " lbs = [s[0] for s in v]\n", " xpos = np.arange(len(ys))\n", " \n", " ax.bar(xpos+(i-2.5)*width/6, ys, yerr=yerrs, width=width/6, align='center', alpha=0.5, label=k,\n", " hatch=pattern[k], edgecolor='black', lw=1.,\n", " error_kw=dict(ecolor='blue', lw=2, capsize=1, capthick=2))\n", " ax.set_ylabel('Spearman $\\\\rho$')\n", " ax.yaxis.grid(True)\n", " ax.set_axisbelow(True)\n", " i += 1\n", "\n", " \n", "ax.set_xticks([0, 1, 2, 3])\n", "ax.set_xticklabels(['CIFAR-10', 'CIFAR-100', 'SVHN', 'ImageNet1k'])\n", "# Save the figure and show\n", "#plt.legend(loc='upper center', prop={'size': 11}, ncol=6, bbox_to_anchor=(0.5,1.15))\n", "plt.legend(prop={'size': 11}, bbox_to_anchor=(1.25,0.75))\n", "plt.tight_layout()\n", "plt.savefig('ptcv_flip.pdf')\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "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.7.6" } }, "nbformat": 4, "nbformat_minor": 4 }