Skip to content

Instantly share code, notes, and snippets.

@gngdb
Last active March 31, 2021 17:56
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 gngdb/0979dd01d7181118897599300935ba93 to your computer and use it in GitHub Desktop.
Save gngdb/0979dd01d7181118897599300935ba93 to your computer and use it in GitHub Desktop.
Generating a new profile picture in the most convoluted way possible.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"id": "endless-anthropology",
"metadata": {},
"source": [
"This is an example performing [neural painting][painting] (don't leave that tab open) on a colour quantised image. That is, an image where the colours are only allowed to take a fixed set of values. Those values will be based on binning a [Quantile transform][quantile].\n",
"\n",
"[painting]: https://cs.stanford.edu/people/karpathy/convnetjs/demo/image_regression.html\n",
"[quantile]: https://scikit-learn.org/stable/modules/generated/sklearn.preprocessing.QuantileTransformer.html#sklearn.preprocessing.QuantileTransformer"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "disturbed-newport",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<PIL.Image.Image image mode=L size=246x246 at 0x7FF2E5856FA0>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"from PIL import Image\n",
"from IPython.display import display, clear_output\n",
"import numpy as np\n",
"\n",
"def show_image(a):\n",
" return display(Image.fromarray(a))\n",
"\n",
"im = np.array(Image.open('avatar3.jpg').convert('L').reduce(5))\n",
"show_image(im)"
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "sized-courtesy",
"metadata": {},
"outputs": [],
"source": [
"from sklearn.preprocessing import QuantileTransformer\n",
"import torch\n",
"import torch.nn as nn\n",
"import torch.optim as optim\n",
"import torch.nn.functional as F\n",
"from torch.utils.data import Dataset, DataLoader\n",
"import math\n",
"from einops import rearrange, reduce, repeat"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "civilian-distance",
"metadata": {},
"outputs": [],
"source": [
"class PixelDataset(Dataset):\n",
" def __init__(self, im, nbins=16, test=False):\n",
" self.nbins = nbins\n",
" self.qt = QuantileTransformer(output_distribution='uniform')\n",
" self.x = np.linspace(-1., 1., im.shape[0]).astype(np.float32)\n",
" self.y = np.linspace(-1., 1., im.shape[1]).astype(np.float32)\n",
" im = rearrange(im, 'h w -> (h w) ()')\n",
" self.pixels = self.qt.fit_transform(im).astype(np.float32)\n",
" self.targets = self.quantize_pixels(self.pixels)\n",
" self.targets = rearrange(self.targets, 'n () -> n')\n",
" self.test = test\n",
"\n",
" def quantize_pixels(self, p):\n",
" x = np.linspace(0, 1, self.nbins+1)\n",
" bins = list(zip(x[:-1], x[1:]))\n",
" q = np.zeros_like(p)\n",
" self.bin_centers = {}\n",
" for bin_idx, (bin_min, bin_max) in enumerate(bins):\n",
" mask = (p >= bin_min)*(p < bin_max)\n",
" bin_center = np.median(p[mask])\n",
" self.bin_centers[bin_idx] = bin_center\n",
" q[mask] = bin_idx\n",
" return q.astype(np.int)\n",
" \n",
" def dequantize_targets(self, t):\n",
" pixels = np.zeros_like(t, dtype=np.float)\n",
" for target in self.bin_centers:\n",
" pixels[t==target] = self.bin_centers[target]\n",
" return pixels\n",
" \n",
" def reconstruct_image(self, function, scale=1):\n",
" stack = np.stack\n",
" x = np.linspace(-1., 1., im.shape[0]*scale).astype(np.float32)\n",
" y = np.linspace(-1., 1., im.shape[1]*scale).astype(np.float32)\n",
" X, Y = np.meshgrid(x, y, indexing='ij')\n",
" inputs = stack([X, Y], -1)\n",
" inputs = rearrange(inputs, 'h w x -> (h w) x')\n",
" outputs = repeat(function(inputs), 'n -> n x', x=1)\n",
" if self.test:\n",
" _inputs = np.zeros((len(x), len(y), 2))\n",
" _outputs = np.zeros((len(x), len(y)))\n",
" for i in range(len(x)):\n",
" for j in range(len(y)):\n",
" _inputs[i,j] = np.array([x[i], y[j]])\n",
" _outputs[i,j] = function(_inputs[np.newaxis,i,j])\n",
" _outputs = _outputs.reshape(-1,1)\n",
" assert np.allclose(outputs, _outputs), f\"{np.max(np.abs(outputs-_outputs))}\"\n",
" h, w = len(x), len(y)\n",
" outputs = self.dequantize_targets(outputs)\n",
" outputs = rearrange(self.qt.inverse_transform(outputs), '(h w) () -> h w', h=h)\n",
" return outputs.astype(np.uint8)\n",
" \n",
" def __len__(self):\n",
" return len(self.pixels)\n",
"\n",
" def __getitem__(self, i):\n",
" j = i%len(self.y)\n",
" k = math.floor(i/len(self.y))\n",
" if self.test:\n",
" X, Y = np.meshgrid(self.x, self.y, indexing='ij')\n",
" assert np.isclose(X.ravel()[i], self.x[k]), f'{X.ravel()[i]}, {self.x[k]}'\n",
" assert np.isclose(Y.ravel()[i], self.y[j]), f'{Y.ravel()[i]}, {self.y[j]}'\n",
" return np.array([self.x[k], self.y[j]]), self.targets[i]"
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "transsexual-palestine",
"metadata": {},
"outputs": [],
"source": [
"dataset = PixelDataset(im, test=True)\n",
"_ = dataset[1729]\n",
"_ = dataset.reconstruct_image(lambda x: x[:,0]+x[:,1])"
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "developing-honolulu",
"metadata": {},
"outputs": [],
"source": [
"dataset = PixelDataset(im)\n",
"loader_kwargs = {'batch_size': 4096, 'num_workers': 1,\n",
" 'pin_memory': True, 'shuffle': True}\n",
"loader = DataLoader(dataset, **loader_kwargs)"
]
},
{
"cell_type": "markdown",
"id": "champion-evanescence",
"metadata": {},
"source": [
"Colour Quantised Target Image\n",
"=========================\n",
"\n",
"The colour quantised target image we want to be able to reproduce looks like this:"
]
},
{
"cell_type": "code",
"execution_count": 8,
"id": "computational-association",
"metadata": {},
"outputs": [],
"source": [
"p = dataset.dequantize_targets(dataset.targets)\n",
"p = dataset.qt.inverse_transform(p.reshape(-1,1)).astype(np.uint8)"
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "subtle-beast",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<PIL.Image.Image image mode=L size=246x246 at 0x7FF26D787EB0>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"show_image(p.reshape(*im.shape))"
]
},
{
"cell_type": "markdown",
"id": "sophisticated-village",
"metadata": {},
"source": [
"Positional Encoding\n",
"=================\n",
"\n",
"A positional encoding might make it easier to learn the function.\n",
"\n",
"Pattern producing networks typically add arbitrary extra features, like radial coordinates, to improve performance. This seems like a good opportunity to try the type of positional encoding used by transformers."
]
},
{
"cell_type": "code",
"execution_count": 10,
"id": "synthetic-flour",
"metadata": {},
"outputs": [],
"source": [
"from math import log, pi"
]
},
{
"cell_type": "code",
"execution_count": 11,
"id": "starting-petroleum",
"metadata": {},
"outputs": [],
"source": [
"# %load -s fourier_encode https://github.com/lucidrains/perceiver-pytorch/raw/main/perceiver_pytorch/perceiver_pytorch.py\n",
"def fourier_encode(x, max_freq, num_bands = 4, base = 2):\n",
" x = x.unsqueeze(-1)\n",
" device, dtype, orig_x = x.device, x.dtype, x\n",
"\n",
" scales = torch.logspace(1., log(max_freq / 2) / log(base), num_bands, base = base, device = device, dtype = dtype)\n",
" scales = rearrange(scales, 's -> ' + ' '.join((x.ndim-1)*['()']) + ' s')\n",
" \n",
" x = x * scales * pi\n",
" x = torch.cat([x.sin(), x.cos()], dim=-1)\n",
" x = torch.cat((x, orig_x), dim = -1)\n",
" return x"
]
},
{
"cell_type": "code",
"execution_count": 12,
"id": "approved-visiting",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"torch.Size([246, 246, 2, 9])\n"
]
}
],
"source": [
"axis = im.shape\n",
"axis_pos = list(map(lambda size: torch.linspace(-1., 1., steps = size), axis))\n",
"pos = torch.stack(torch.meshgrid(*axis_pos), dim = -1)\n",
"e = fourier_encode(pos, 16)\n",
"print(e.shape)"
]
},
{
"cell_type": "code",
"execution_count": 13,
"id": "prospective-toner",
"metadata": {},
"outputs": [],
"source": [
"import matplotlib.pyplot as plt\n",
"plt.style.use('ggplot')"
]
},
{
"cell_type": "markdown",
"id": "tired-beijing",
"metadata": {},
"source": [
"Positions expressed as values between -1 and 1 along the two axes:"
]
},
{
"cell_type": "code",
"execution_count": 14,
"id": "perfect-publisher",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.image.AxesImage at 0x7ff2663c1bb0>"
]
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAXcAAADKCAYAAABe4wDhAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAAAeRUlEQVR4nO3db2wU570v8O/vmd17k9TB3bUBn3JNdMBUvahUFBmlWE0dyraqUtRr+eagEFEOlOaP2lwuWIlE0yPyIo3qKjUG7gVBj6K0ROdISY5qS3lVyXVrpPoc1S1FreAWxTRt4F63Bu/GQAsB7zz3xczOzjNe4zXGPLO7349kz8wzz8wO38W/fXZ2dle01hpERFRVlO0DICKiu4/FnYioCrG4ExFVIRZ3IqIqxOJORFSFWNyJiKpQYqF2fPr0abz++utwXRebNm1CR0fHQt0UERFFLMjI3XVdvPbaa3jxxRfR29uLX/ziF7h48eJC3BQREZWwIMV9dHQUTU1NWLp0KRKJBNra2jAyMrIQN0VERCUsSHHPZrNoaGgIlhsaGpDNZhfipoiIqIQFOede6hMNRMRYHhgYwMDAAACgu7sbN/56A+//n/+7EIdTkZb/12XMIyQWeRT+D8849X8F/9VD8+H//8Z8dBtAS7DCaC/MaxE81NyAP12YMPsIoCN9zX1Obze3iR5XZNtS+y4cU+F3iXWlb+t2/SL1IxJvaC/BIa98sBF/uHYp0q4j8XvL4t9GMRIdugv8PuK3++unLQf7LezTXBduL7WfktsUbt8/luiP11f8efH6JddgJgtS3BsaGjAxMREsT0xMIJVKGX0ymQwymUyw/P7v/x+ea/unhTicivS///0V5hFiKw+dz3szoiCOAyjxpiLBMvxlOI43iAmWFaAUIALtqGKbCLRS3vNmpaBFAEf8fgKt/HklgAK0EmgRaAVAee3HD23H010nvHYHXuFUXh/tz3ttMy2juKyK24f7oERfiL9u2rYARN+mrzbblfb+/aF1EH+qilMJphri34YSDfHblD99e+NTeOLkcTjiLTuqMHWhRMMJzSfEhYhGIljOe1PlQkEjofJw/H5KXCTF9drgIqFcOHCRVHkoaCQlD0dcJCXv9/X6hduTMgUH2puKiySK64K+0EiKG5kCSQCOCJIQKBEk4cARQQIOHFGQpndn/L+7IMV95cqVGBsbw/j4ONLpNIaHh7F79+7ZNxRemWlgHiYbeYgGtHvvb5donhakuDuOg6997Wt45ZVX4LouNm7ciObm5ttvJIA4LGYB5mGylYd2ofP3/maJ5mvBrnNft24d1q1bN4ctxHsKSz7mYWIeRHOxYMV9zgrnKsnDPEy28hAFgEP3aqC1TH+xtorFp7hj+hU1tY55mGzkoRXvg2ohNVTYgTgVdwFHqmHMw2QpDxFBbZWE6sWRuzX+ZWLkYx4m5kHzw5G7Tbz0z8Q8TDby4Iu4VKHiU9xFeOlfGPMwWcpD83UPqlDxKe6A+fZnYh5RNvLgyJ0qVHyKO19ANDEPE/MgmpP4FHcIR6oG5mGykwcvR6VKFZ/iLuDVEGHMw2QrD17nXjV4KaRNHCWZmIfJRh68Yqlq8FJIa/yPRSUf8zAxD5ofjtxtKXxCPnmYh8lWHjwtUzU4creJl52ZmIfJRh58gKUKFbPizj8kA/Mw2ciD59ypQsWnuAs/r9vAPEzMg2hO4lPcwbd6RzEPk408hM+eqELFp7gLvC8JJg/zMFnKg29iokoVn+IO/xvhycc8TJbyYHGnChWj4g6AtczEPEzMg6hs8SnuAr5gFsY8TLby4H1AFSo+xR2A5jNgA/MwWcmDp2WoQsWmuGsB314ewjxM1vJgcacKFZviDsB76k1FzMPEPIjKFqPiLtC8pjiEeZgs5cH7gCrUvIr7N7/5Tdx3331QSsFxHHR3d+PatWvo7e3FpUuXsHjxYuzduxd1dXXl7ZBPgU3Mw2TlI395H1BlmvfI/aWXXsKiRYuC5f7+fqxZswYdHR3o7+9Hf38/tm3bNvuOBNB8004R8zDZyoPFnSrUXX+FamRkBO3t7QCA9vZ2jIyMlL+x8Cf4YR7xyIOoQs175P7KK68AAL7whS8gk8lgcnISqVQKAJBKpXDlypXydiTgOeYw5mGylQdH7lWDX9YxBy+//DLS6TQmJyfxne98Bx/72MfK3nZgYAADAwMAgO7ubjy0vAHHjvzjfA6nqjAPk6085MM88OGH/oLMMvV/BY8Hofnwg4QxH92mcD1/eJ8w5rUIHmpuwA8ObDf7CKAjfc19Tm83t4keV2TbUvsuHFPhd4l1pW/rdv0iBTgSb2gvwSGvrGvEm597JtKuI/Hr4hMyCa3zj1sQ6iN+u79+2nKw38I+zXXh9lL7KblN4fbldk9exZ+XWccd8yru6XQaAFBfX4/169djdHQU9fX1yOVySKVSyOVyxvn4sEwmg0wmEyz/8f0JPPM/T8zncKrK8UPbmUeIrTzu/0MW+dH3AFEQxwGUeFORYBn+MhzH+6CxYFl573AV/ysCC23if06OAqCU92mXjvj9/KuCxJ8q7xmLFoFWAJTXfvzQdjzddcJrdxA8s9HKf0+AEr9tpmUUl1Vx+3AflOgL8ddN2xaA6Nv01Wa70t6/P7QO4k9VcSrBVHsfrS8aSjTEb1P+9O2NT+GJk8fhiLfsqMLUhRINx9/OUS4S4kJEI+GvS0jemyoXChoJlYcjGglxocRFUlyvDS4SyoUDF0mVh4JGUvJwxEVS8n5fr1+4PSlTcKC9qbhIorgu6AuNpLiRKZAE4IggCYESQRIOHBEk4MARBWl6d8b/u3d8zv3GjRu4fv16MP/b3/4Wy5cvR2trK4aGhgAAQ0NDWL9+fXk7FOEPf+L5Q1WBX7NXpsnJSXz/+98HAOTzeXz2s5/F2rVrsXLlSvT29mJwcBCNjY3o6uoqe5+ab8g0MA8T8yAq3x0X96VLl+LVV1+d1v7ggw9i//79d7ZTDpJMzMNkIw+O3KlCxecdqsKrQwzMw2QrD94HVKHiU9wB74UhCjAPk5U8OHKnChWv4s4/JAPzMDEPovLFprgHl1wRAOYRZS0PPqBUDb6JySb+HZmYh8lCHny2UD14KaRFfAHRxDxMdl5Qvfc3SQuDI3dbhF8rZ2AeJuZB88SRu0U8x2xiHiaecycqX6yKO88xRzAPE9/ERFS2+BR3Xh1iYh4mS3nwBVWqVLEp7hr8QwpjHibmQTQ3sSnuAEeqUczDZCUP3gdUoeJT3AU8xxzGPEy28uCzBapQ8Snu4Eg1inmYeLUMUfniVdz5d2RgHibmQVS++BR3Ac9vhjEPk6U8+IBClSo+xR38Q4piHiYrefAjIKhCxaa4a/AccxjzMNnKQ4vwdW2qSLEp7hDhB2WFMQ8T8yCak/gUd4CX/kUxD5OVSyEt3CbRXRCr4s7TECbmYeKlkETli1Vx5ygpgnmYrHxZB+8GqkzxKe78oCwT8zAxD5onflmHTRwimZiHiR8/QPPAL+uwiCMzE/Mw8YPDaD44co84evQoTp06hfr6evT09AAArl27ht7eXly6dAmLFy/G3r17UVdXBwDo6+vD4OAglFLYuXMn1q5dW9aBaH6NmoF5mGzlwY8Zrh61NnKfdVzy6KOP4sUXXzTa+vv7sWbNGhw+fBhr1qxBf38/AODixYsYHh7GgQMH8O1vfxuvvfYaXNed29Hwp3iv2D6GOP3YyoOoQs3633f16tXBqLxgZGQE7e3tAID29naMjIwE7W1tbUgmk1iyZAmampowOjpa9sEURmf8YR5xyYOve1CluqNz7pOTk0ilUgCAVCqFK1euAACy2SxWrVoV9Eun08hms+XtVMBzzGHMw2QpD56WoUp1V19Q1br8c1oDAwMYGBgAAHR3d2Pl4jTe/saTd/NwKhrzMNnKI/mPLuTKP3gLhUI/49T/FTwehObDDxLGfHSbwjOV8D5hzGsRPNTcgB8c2G72EUBH+pr7nN5ubhM9rsi2pfZdOKbC7xLrSt/W7fpF6kgk3tBegkNeWdeINz/3TKRdR+LXxe98kdA6/7gFoT7it/vrpy0H+y3s01wXbi+1n5LbFG5fit9NE/7x+hY+60hmvZDrjop7fX09crkcUqkUcrkcFi1aBABoaGjAxMRE0C+bzSKdTpfcRyaTQSaTCZbPX8ri8WP/eieHU5X+7dknmUeIrTz+7j8+RGLwFCAK4jiAEm8qEizDX4bjQCS8rAClvM/FcVSxTQRaKf+8vvKeHTji9/M/Q6fwWToK0EqgRbxnLsprP35oO57uOuG1O/Cf2Xh9tD9feLZTehnFZVXcPtwHJfoidLrK3BaA6Nv01Wa70t6/P7QO4k9VcSrBVEP821CiIX6b8qdvb3wKT5w8Dke8ZUcVpi6UaDih+YS4ENFIBMt5b6pcKGgkVB6O30+Ji6S4XhtcJJQLBy6SKg8FjaTk4YiLpOT9vl6/cHtSpuBAe1NxkURxXdAXGklxI1MgCcARQRICJYIkHDgiSMCBIwrS9O6M/3fv6Ilua2srhoaGAABDQ0NYv3590D48PIxbt25hfHwcY2NjaGlpKX/HpR6uavWHecQij2mjVqpYusbuzFlH7gcPHsTZs2dx9epVPPvss9iyZQs6OjrQ29uLwcFBNDY2oqurCwDQ3NyMDRs2oKurC0op7Nq1C0qV+fghPMdsYB4mW3nwkyirRq1dCjlrcd+zZ0/J9v3795ds7+zsRGdn550dDf+OTMzDZCGPGhvsVTW+ickSfjmFiXmYmAfNF0futoj2XlghD/Mw2cqDl0JShYpPcQd4GiKKeZh4WoaobLEq7nzabWIeJjtf1mHhNonuglgVd/4hRTAPE/MgKlt8ijuvKTYxD5OtPHgfUIWKT3EH+IcUxTxMVs65806gyhSr4s5zzCbmYeI5d6Lyxaq419IbDMrCPEzMg6hssSnumm+3NzAPk608eB9QpYpNcQfAp8BRzMPEF1SJyhar4s5Rkol5mPhlHUTli09xF/CcahjzMDEPojmJT3EH+IXEUczDxKtliMoWr+LOPyQT8zDxs2WIyhaf4i7gpyCGMQ+TrTx4zp0qVHyKO8CRahTzMDEPmgd+WYdNNRR8WZiHyUIevFqmevDLOmzi35GJeZisXOfOO6FacORui2iA55iLmIfJUh58QbV6cORuEy/9MzEPE/MgKlu8inuNPbLOinmYbOTBkTtVqPgUdwGEpyGKmIfJUh48LUOVKj7FHeAoKYp5mPjBYURli1Vx50jVxDxMzIOofLMW96NHj+LUqVOor69HT08PAOCtt97CT3/6UyxatAgAsHXrVqxbtw4A0NfXh8HBQSilsHPnTqxdu7asAxHwqrMw5mGylQdPy1QPXgoZ8eijj+JLX/oSjhw5YrR/+ctfxle+8hWj7eLFixgeHsaBAweQy+Xw8ssv49ChQ1CqjMscpPYuVbot5mGylQeLe9Wotb+nWYv76tWrMT4+XtbORkZG0NbWhmQyiSVLlqCpqQmjo6P4+Mc/XsbWuubCvz3mYbKTB9+hWj04ci/TT37yE5w8eRIrVqzA9u3bUVdXh2w2i1WrVgV90uk0stls2fvkOVUT8zBZyYO1vWrU2mDpjor7F7/4RTz++OMAgDfffBMnTpzAN77xDWhdfngDAwMYGBgAAHR3d2Plokb8eNOuOzmcqsQ8TLbycFoVEs/9N2+hMIqfcer/Ch4QQvPhZwDGfHSbwnn+8D5hzGsRPNTcgB8c2G72EUBH+pr7nN5ubhM9rsi2pfZdOKbC7xLrSt/W7fpF6kgk3tBegkNeWdeINz/3TKRdR+L3lsW/jWIkOnQX6OD1HfFvR6CnLwf7LezTXBduL7WfktsUbt8/luiP11f8eZn1Nag7Ku4f/ehHg/lNmzbhe9/7HgCgoaEBExMTwbpsNot0Ol1yH5lMBplMJlj+w9XL+Ief//OdHE5V+reNTzGPEFt51L3zIFIn/gMQBXEcQIk3FQmW4S/DcSASXlaAUoAItKOKbSLQSnnvuFXKO/XjiN9PoJU/rwRQgFYCLeJ9zaDy2o8f2o6nu0547Q68wqm8Ptqf99pmWkZxWRW3D/dBib4Qf920bQGIvk1fbbYr7f37Q+sg/lQVpxJMNcS/DSUa4rcpf/r2xqfwxMnjcMRbdlRh6kKJhhOaT4gLEY1EsJz3psqFgkZC5eH4/ZS4SIrrtcFFQrlw4CKp8lDQSEoejrhISt7v6/ULtydlCg60NxUXSRTXBX2hkRQ3MgWSABwRJCFQIkjCgSOCBBw4oiBN7874f/eOinsul0MqlQIA/PKXv0RzczMAoLW1FYcPH8bmzZuRy+UwNjaGlpaWsvdba0+bZsM8THxBlah8sxb3gwcP4uzZs7h69SqeffZZbNmyBWfOnMEf//hHiAgWL16Mp59+GgDQ3NyMDRs2oKurC0op7Nq1q7wrZQDvEZnnmIuYh8lSHrwUkirVrMV9z54909o+//nPz9i/s7MTnZ2dcz6Qwnkq8jAPE/MgmptYvUPV4R+vgXmYrOTBkTtVqFgVd47MTMzDZOc693t+k0R3RWyKu3chAYtZAfMw2cqDxZ0qVXyKO7xLlcjDPEy28pi657dIdHfEprgDPA0RxTxMvBSSqHyxKu58AdHEPEw28rjJ4k4VKjbFXQRQLGYB5mGylgeLO1Wo2BR38BxzBPMwMQ+iuYhNcRdwpBrGPEy28uDVMlSpYlXcE8KRWQHzMFnLg8WdKlRsijuEX05hYB4mS3nwyzqqB7+swxIBkOA51QDzMDEPmq9aGyzFprgDPMccxTxMvFqG5oMjd0sE3ofmk4d5mKzlweJeNThyt4XXdZuYh8lSHrxahipVbIo7z6mamIeJeRDNTWyKO6ChwJFqEfMwWcqDI3eqULEp7t7IjOeYC5iHyVYePC1DlSo+xV34QVlhzMNkLQ8Wd6pQ8Snu0HxHZgjzMDEPmi9eCmmJQCPJ0xAB5mGylgdH7lWDl0JaxBcQTczDZCMPnnOvHhy5WyLCFxDDmIfJWh4s7lWDI3dLBBoOeE61gHmYmAfR3MSmuAN8k0oU8zDZyIOnZahSzVrcL1++jCNHjuCDDz6AiCCTyeCxxx7DtWvX0Nvbi0uXLmHx4sXYu3cv6urqAAB9fX0YHByEUgo7d+7E2rVrZz0QjsxMzMNkLQ8Wd6pQsxZ3x3Hw1a9+FStWrMD169exb98+fOpTn8LPf/5zrFmzBh0dHejv70d/fz+2bduGixcvYnh4GAcOHEAul8PLL7+MQ4cOQSl129sRgFeHhDAPk7U8WNypQt2+4gJIpVJYsWIFAOD+++/HsmXLkM1mMTIygvb2dgBAe3s7RkZGAAAjIyNoa2tDMpnEkiVL0NTUhNHR0TIPRvMn9DZ728cQpx9beRBVqjmdcx8fH8d7772HlpYWTE5OIpVKAfAeAK5cuQIAyGazWLVqVbBNOp1GNpuddd8iGkl+xG2AeZhs5cFz7lSpyi7uN27cQE9PD3bs2IEHHnhgxn5alzfaGRgYwMDAAACgu7sbjf+5GbtW9pZ7OFWvgXkYbOXR8c1F+E///SveQuEr92ac+r+CB4TQfPjr+oz56DaFB5TwPmHMaxE81NyAHxzYbvYRFJ9rRB6UtJRuN7eJHldk21L7LhxT4XeJdaVv63b9IjUkEm9oL8Ehr6xrxJufeybSriPxe8vi30YxEh26C/w+4rf766ctB/st7NNcF24vtZ+S2xRu3z+W6I/XV/x5wWzfAFlWcZ+amkJPTw8eeeQRPPzwwwCA+vp65HI5pFIp5HI5LFq0CADQ0NCAiYmJYNtsNot0Oj1tn5lMBplMptjvw/fxL+/9j3IOpyZs+/v/xTxCbOXx2r98Cf+l+98BURDHAZR4U5FgGf4yHAci4WUFKAWIQDuq2CYCrZR3UlQp73taHfH7CbTy55UACtBKoEWgFQDltR8/tB1Pd53w2h14hVN5fbQ/77XNtIzisipuH+6DEn0h/rpp2wIQfZu+2mxX2vv3h9ZB/KkqTiWYaoh/G0o0xG9T/vTtjU/hiZPH4fjfteuowtSFEg0nNJ8QFyIaiWA5702VCwWNhMrD8fspcZEU12uDi4Ry4cBFUuWh4D2bdMRFUvJ+X69fuD0pU3Cgvam4SKK4LugLjaS4kSmQBOCIIAmBEkESDhwRJODAEQVpenfG/7uzFnetNY4dO4Zly5Zh8+bNQXtrayuGhobQ0dGBoaEhrF+/Pmg/fPgwNm/ejFwuh7GxMbS0tJT1h6T42SEG5mFiHkTlm7W4nzt3DidPnsTy5cvxwgsvAAC2bt2Kjo4O9Pb2YnBwEI2Njejq6gIANDc3Y8OGDejq6oJSCrt27Zr1ShnA/+wQnmMOMA8T8yCam1mL+yc+8Qm89dZbJdft37+/ZHtnZyc6OzvndCAC8LruEOZhspYHX1ClChWbd6jy6hAT8zDxahmiuYlPcfdfcCAP8zAxD6K5iVFx5zcPhTEPk7U8OHKnChWj4s6RWRjzMFnLg8WdKlRsijsAOHy7t4F5mGzkwXPu1YNf1mEJR6om5mFiHjRf/LIOS7w36fHSvwLmYbKWB0fuVYMjd0sEGknw0r8C5mGylgeLe9XgyN0S72oIjlQLmIfJVh48506VKkbFnW/aCWMeJuZBNDexKe4A324fxTxMdj5+oLaeylP1iE1x58jMxDxMtvLgaRmqVDEq7ryuO4x5mKzlweJOFSpWxT3JFxADzMNkLQ8W96rBSyGt0RypGpiHiXnQ/PBSSEtEOFINYx4mW3nwnHv14MjdEp5jNjEPE8+503xx5G6Jd07V9lHEB/MwWcuD9wFVqHgVd9sHESPMw8Q8iOYmVsXdEQ6TCpiHyVYetfVEnqpJrIp7ks+BA8zDZC0P3gVUoWJT3AFAcaRqYB4m5kFUvtgUd4EgCcf2YcQG8zBZy4OPJ1ShYlTceY45jHmYrJ1z511AFSo2xR0QJDhSDWEeJkt51Ni10VQ9YlPcva9RU7YPIzaYh4l5EM2NaK05NCEiqjKxGQrt27fP9iHECvMwMQ8T8zAxj+liU9yJiOjuYXEnIqpCsSnumUzG9iHECvMwMQ8T8zAxj+n4gioRURWKzcidiIjuHuvXuZ8+fRqvv/46XNfFpk2b0NHRYfuQFtzRo0dx6tQp1NfXo6enBwBw7do19Pb24tKlS1i8eDH27t2Luro6AEBfXx8GBwehlMLOnTuxdu1ai0d/912+fBlHjhzBBx98ABFBJpPBY489VrOZ3Lx5Ey+99BKmpqaQz+fxmc98Blu2bKnZPApc18W+ffuQTqexb9++ms9jVtqifD6vn3vuOf3nP/9Z37p1Sz///PP6woULNg/pnjhz5ow+f/687urqCtreeOMN3dfXp7XWuq+vT7/xxhtaa60vXLign3/+eX3z5k39l7/8RT/33HM6n8/bOOwFk81m9fnz57XWWv/tb3/Tu3fv1hcuXKjZTFzX1devX9daa33r1i39rW99S587d65m8yh455139MGDB/V3v/tdrXVt/82Uw+ppmdHRUTQ1NWHp0qVIJBJoa2vDyMiIzUO6J1avXh2MMApGRkbQ3t4OAGhvbw9yGBkZQVtbG5LJJJYsWYKmpiaMjo7e82NeSKlUCitWrAAA3H///Vi2bBmy2WzNZiIiuO+++wAA+Xwe+XweIlKzeQDAxMQETp06hU2bNgVttZxHOawW92w2i4aGhmC5oaEB2WzW4hHZMzk5iVQqBcArdleuXAEwPaN0Ol3VGY2Pj+O9995DS0tLTWfiui5eeOEFfP3rX8eaNWuwatWqms7jhz/8IbZt2wYJfXhcLedRDqvFXZe4UEf4SYiGUhlVqxs3bqCnpwc7duzAAw88MGO/WshEKYVXX30Vx44dw/nz5/H+++/P2Lfa8/j1r3+N+vr64NndbKo9j3JZfUG1oaEBExMTwfLExETwSFxr6uvrkcvlkEqlkMvlsGjRIgDTM8pms0in07YOc8FMTU2hp6cHjzzyCB5++GEAzAQAPvKRj2D16tU4ffp0zeZx7tw5/OpXv8JvfvMb3Lx5E9evX8fhw4drNo9yWR25r1y5EmNjYxgfH8fU1BSGh4fR2tpq85CsaW1txdDQEABgaGgI69evD9qHh4dx69YtjI+PY2xsDC0tLTYP9a7TWuPYsWNYtmwZNm/eHLTXaiZXrlzBX//6VwDelTO/+93vsGzZsprN48knn8SxY8dw5MgR7NmzB5/85Cexe/fums2jXNbfxHTq1Cn86Ec/guu62LhxIzo7O20ezj1x8OBBnD17FlevXkV9fT22bNmC9evXo7e3F5cvX0ZjYyO6urqCF11//OMf42c/+xmUUtixYwc+/elPW/4X3F2///3vsX//fixfvjw4Lbd161asWrWqJjP505/+hCNHjsB1XWitsWHDBjz++OO4evVqTeYRdubMGbzzzjvYt28f85iF9eJORER3H9+hSkRUhVjciYiqEIs7EVEVYnEnIqpCLO5ERFWIxZ2IqAqxuBMRVSEWdyKiKvT/AaI3BRZi2By0AAAAAElFTkSuQmCC\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.imshow(rearrange(pos, 'h w c -> h (c w)'))"
]
},
{
"cell_type": "markdown",
"id": "obvious-defeat",
"metadata": {},
"source": [
"Fourier encoding of the positions:"
]
},
{
"cell_type": "code",
"execution_count": 15,
"id": "rental-injury",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"_ = plt.imshow(rearrange(e[:,:,0,:], 'h w f -> h (f w)'))\n",
"plt.show()\n",
"_ = plt.imshow(rearrange(e[:,:,1,:], 'h w f -> h (f w)'))"
]
},
{
"cell_type": "code",
"execution_count": 16,
"id": "nonprofit-solid",
"metadata": {},
"outputs": [],
"source": [
"# checking I can it like this\n",
"_e = fourier_encode(rearrange(pos, 'h w c -> (h w) c'), 16)\n",
"assert torch.abs(_e - rearrange(e, 'h w c f -> (h w) c f')).max() < 1e-5"
]
},
{
"cell_type": "markdown",
"id": "fifth-theology",
"metadata": {},
"source": [
"The Network\n",
"==========\n",
"\n",
"The network Andrej Karpathy used in his example was quite a deep small MLP. As the number of layers grow in fully connected networks like that, gradient propagation [becomes problematic][shattered]. There's a few papers that come up with specific network architectures to deal with this (including arguably all ResNets). I'm going to give [Self-Normalizing Networks][selu] a try.\n",
"\n",
"[selu]: https://arxiv.org/abs/1706.02515\n",
"[shattered]: https://arxiv.org/abs/1702.08591"
]
},
{
"cell_type": "code",
"execution_count": 17,
"id": "palestinian-patent",
"metadata": {},
"outputs": [],
"source": [
"# %load https://raw.githubusercontent.com/tonyduan/snn/master/snn/models.py\n",
"import torch\n",
"import torch.nn as nn\n",
"import math\n",
"from collections import OrderedDict\n",
"\n",
"\n",
"class SNN(nn.Module):\n",
"\n",
" def __init__(self, in_dim, out_dim, hidden_dim, n_layers, dropout_prob=0.0):\n",
" super().__init__()\n",
" layers = OrderedDict()\n",
" for i in range(n_layers - 1):\n",
" if i == 0:\n",
" layers[f\"fc{i}\"] = nn.Linear(in_dim, hidden_dim, bias=False)\n",
" else:\n",
" layers[f\"fc{i}\"] = nn.Linear(hidden_dim, hidden_dim, bias=False)\n",
" layers[f\"selu_{i}\"] = nn.SELU()\n",
" layers[f\"dropout_{i}\"] = nn.AlphaDropout(p=dropout_prob)\n",
" layers[f\"fc_{i+1}\"] = nn.Linear(hidden_dim, out_dim, bias=True)\n",
" self.network = nn.Sequential(layers)\n",
" self.reset_parameters()\n",
"\n",
" def forward(self, x):\n",
" return F.log_softmax(self.network(x), 1)\n",
"\n",
" def reset_parameters(self):\n",
" for layer in self.network:\n",
" if not isinstance(layer, nn.Linear):\n",
" continue\n",
" nn.init.normal_(layer.weight, std=1 / math.sqrt(layer.out_features))\n",
" if layer.bias is not None:\n",
" fan_in, _ = nn.init._calculate_fan_in_and_fan_out(layer.weight)\n",
" bound = 1 / math.sqrt(fan_in)\n",
" nn.init.uniform_(layer.bias, -bound, bound)\n",
"\n",
" def track_layer_activations(self, x):\n",
" activations = []\n",
" for layer in self.network:\n",
" x = layer.forward(x)\n",
" if isinstance(layer, nn.SELU):\n",
" activations.append(x.data.flatten())\n",
" return activations\n"
]
},
{
"cell_type": "code",
"execution_count": 18,
"id": "utility-example",
"metadata": {},
"outputs": [],
"source": [
"class Net(nn.Module):\n",
" def __init__(self, max_freq, num_bands, nbins, hidden=20, n_layers=4):\n",
" super(Net, self).__init__()\n",
" self.max_freq, self.num_bands = max_freq, num_bands\n",
" input_dim = 2*(2*self.num_bands+1)\n",
" self.snn = SNN(input_dim, nbins, hidden, n_layers)\n",
"\n",
" def forward(self, x):\n",
" x = fourier_encode(x, self.max_freq, num_bands=self.num_bands)\n",
" x = rearrange(x, 'n d f -> n (d f)')\n",
" return F.log_softmax(self.snn(x), 1)"
]
},
{
"cell_type": "code",
"execution_count": 19,
"id": "ruled-mongolia",
"metadata": {
"scrolled": false
},
"outputs": [
{
"data": {
"text/plain": [
"tensor([[-2.4070, -2.5835, -5.1095, -2.6763, -2.0097, -1.8720, -3.7939, -3.1095,\n",
" -2.9505, -2.5721, -2.3491, -2.9376, -3.5113, -3.5239, -3.4727, -3.2951],\n",
" [-2.7767, -2.5498, -4.0909, -2.0999, -2.7069, -4.9711, -3.3948, -4.3205,\n",
" -2.3101, -1.8900, -2.0353, -3.8607, -3.7707, -2.0878, -3.1053, -5.0974],\n",
" [-1.6829, -2.7562, -2.9777, -3.5586, -3.5252, -3.2130, -3.8567, -1.7200,\n",
" -2.7116, -3.2129, -2.8944, -3.2102, -3.2118, -3.3811, -3.5609, -2.3402],\n",
" [-3.9278, -3.3499, -2.3036, -3.3479, -3.4911, -3.9468, -2.5156, -4.8852,\n",
" -4.5146, -1.5985, -3.7550, -2.5419, -2.7398, -2.4663, -2.8818, -1.8890]],\n",
" grad_fn=<LogSoftmaxBackward>)"
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"Net(16, 4, dataset.nbins)(torch.rand(4,2))"
]
},
{
"cell_type": "code",
"execution_count": 20,
"id": "expensive-planet",
"metadata": {},
"outputs": [],
"source": [
"def wrap_model(model):\n",
" def paint(x):\n",
" model.eval()\n",
" with torch.no_grad():\n",
" x = torch.tensor(x, dtype=torch.float).to(device)\n",
" out = torch.argmax(model(x), 1).cpu().detach().numpy().astype(np.int)\n",
" model.train()\n",
" return out\n",
" return paint"
]
},
{
"cell_type": "code",
"execution_count": 21,
"id": "palestinian-august",
"metadata": {},
"outputs": [],
"source": [
"def get_lr(optimizer):\n",
" for param_group in optimizer.param_groups:\n",
" return param_group['lr']\n",
"\n",
"def train(model, device, train_loader, optimizer, scheduler, epoch, logs):\n",
" model.train()\n",
" for batch_idx, (data, target) in enumerate(train_loader):\n",
" data, target = data.to(device), target.to(device)\n",
" optimizer.zero_grad()\n",
" output = model(data)\n",
" loss = F.nll_loss(output, target)\n",
" loss.backward()\n",
" optimizer.step()\n",
" scheduler.step()\n",
" logs['Loss'].append(loss.item())\n",
" if (batch_idx+1) % (len(train_loader)-1) == 0:\n",
" r_im = dataset.reconstruct_image(wrap_model(model))\n",
" clear_output(wait=True)\n",
" print('Train Epoch: {} [{}/{} ({:.0f}%)] Loss: {:.6f} lr: {:.6f}'.format(\n",
" epoch, batch_idx * len(data), len(train_loader.dataset),\n",
" 100. * batch_idx / len(train_loader), loss.item(), get_lr(optimizer)))\n",
" plt.plot(logs[\"Loss\"], alpha=0.6)\n",
" def moving_average(x, w):\n",
" return np.convolve(x, np.ones(w), 'valid') / w\n",
" conv_window = min(len(logs[\"Loss\"]), 100)\n",
" _y = moving_average(logs[\"Loss\"], conv_window)\n",
" _x = (len(logs[\"Loss\"])-len(_y))/2 + np.arange(len(_y))\n",
" plt.plot(_x, _y)\n",
" plt.xlabel(\"Training Step\")\n",
" plt.ylabel(\"Loss\")\n",
" plt.show()\n",
" show_image(r_im)"
]
},
{
"cell_type": "code",
"execution_count": 22,
"id": "changed-outline",
"metadata": {
"scrolled": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Train Epoch: 127 [53248/60516 (87%)] Loss: 0.046260 lr: 0.000000\n"
]
},
{
"data": {
"image/png": "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JcSApHiIK86BAwf4yU9+wpIlS/j973/PjBkzuOeee/jpT39KVVUVgUCAKVOmcO+994aGlzj3r/q33nqL119/nYKCAt58800cDgerVq0K3YkbTtv6+no2bdrEsWPHKCgoYPTo0XR2drJmzZrzch85coSZM2eSk5MDBMd3KioqAuDXv/41H330EVVVVTz77LPccMMNfOMb3+DkyZP84he/4OjRo6SlpXHbbbeFxlvatGkTFouF06dPU1VVxcSJE3nwwQcvOny9EIMl5zzEFam5uZn29nY2b97Mfffdh9aaG264gc2bN7N582asVitbtmy54PLV1dXk5uayZcsWvvzlL/P0009fcOTRi7V96qmnmDRpEr/4xS/42te+xl/+8pcLbrOgoIC3336b3/72txw5ciQ0ThIEh5yYNm0aK1euZNu2bXzjG9+gu7ubH/7wh3zuc5/jmWee4d/+7d/YsmULNTU1oeX++te/8tWvfpUtW7YwYcIESktLw92VQgxIioe4IimlWL58ORaLBavVSmpqKgsWLCApKQm73c6yZcv46KOPLri82+2mqKgIwzC4/vrraWpqoqWlJay2DQ0NHDlyhNtuuw2z2czUqVOZO3fuBbe5ePFiVq5cyQcffMAPfvADVq1axSuvvHLB9uXl5WRlZXHjjTdiMpnIz89n/vz57Nq1K9Rmzpw5TJ8+HYvFwh133EFlZSUNDQ2X3oFCXIIcthJXpLS0NKxWa+h5T08Pzz33HPv27aOjowOArq4uAoFA6CT7ufqGeQdCo852d3cPuK0LtW1tbSUlJaXfqLVut/uiH96LFi1i0aJF+Hw+du/eTWlpKRMmTBhwzvUzZ85QVVXF3XffHXrN7/ezePHi0PNzR3212WykpKTQ1NSE2+2+YAYhBkOKh7gi/eNooL/73e+ora3l8ccfJyMjg+PHj/PII49EdKIep9NJe3s7PT09oQIy2L/6zWYz1157La+++io1NTXMmjXrvO/J5XIxffp0vve9711wPefO0dDd3U17e3tM5q8RVx45bCUSQnd3N1arFYfDQXt7Oy+++GLEt5mVlcWkSZN48cUX8fl8VFZWsnfv3gu2f+uttygvLw/1iCoqKqipqQlNG5qens7p06dD7efOncupU6fYuXMnPp8Pn89HdXU1n3zySahNRUUFhw4dwufz8Zvf/IaCggLpdYjLQnoeIiHcfPPNlJaW8o1vfIPMzEyWLl3K7t27I77df/3Xf2Xz5s2sXLmSyZMns3Dhwn4nws9lt9t5+eWX+clPfkIgEMDtdnPvvfcyderU0PewadMm/vznP7No0SJWrlzJd7/7XZ577jmee+45tNaMHz+ef/7nfw6t87rrruPFF1+ksrKS/Pz8Aa/yEmIo5CZBIaLoySefJC8vj+XLl0d8W5s2bcLlcnH77bdHfFsi8chhKyEiqLq6mrq6OgKBAPv27WPPnj2hKUGFGMnksJUQEdTc3MzGjRtpa2vD5XKxatUqJk6cGOtYQgybHLYSQggRNjlsJYQQImxSPIQQQoRNiocQQoiwSfEQQggRNikeQgghwvb/AyxOm+we6ISsAAAAAElFTkSuQmCC\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<PIL.Image.Image image mode=L size=246x246 at 0x7FF24C17B2E0>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"from collections import defaultdict\n",
"\n",
"n_epochs = 128\n",
"model = Net(512, 256, dataset.nbins, hidden=64, n_layers=16)\n",
"# optimizer = optim.SGD(model.parameters(), lr=0.02, momentum=0.9)\n",
"optimizer = optim.Adam(model.parameters())\n",
"scheduler = optim.lr_scheduler.CosineAnnealingLR(optimizer, len(loader)*n_epochs)\n",
"device = torch.device(\"cuda\" if torch.cuda.is_available() else \"cpu\")\n",
"model.to(device)\n",
"logs = defaultdict(list)\n",
"for epoch in range(n_epochs):\n",
" train(model, device, loader, optimizer, scheduler, epoch, logs)"
]
},
{
"cell_type": "code",
"execution_count": 23,
"id": "ongoing-moore",
"metadata": {},
"outputs": [],
"source": [
"torch.save(model.state_dict(), 'snn_encoding.pt')"
]
},
{
"cell_type": "code",
"execution_count": 24,
"id": "durable-alexandria",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<All keys matched successfully>"
]
},
"execution_count": 24,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"model.load_state_dict(torch.load('snn_encoding.pt'))"
]
},
{
"cell_type": "markdown",
"id": "falling-promotion",
"metadata": {},
"source": [
"As losssy encodings go this is a silly one."
]
},
{
"cell_type": "code",
"execution_count": 25,
"id": "coupled-jefferson",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"756K\tavatar3.jpg\r\n"
]
}
],
"source": [
"!du -hs avatar3.jpg"
]
},
{
"cell_type": "code",
"execution_count": 26,
"id": "structural-inspiration",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"492K\tsnn_encoding.pt\r\n"
]
}
],
"source": [
"!du -hs snn_encoding.pt"
]
},
{
"cell_type": "markdown",
"id": "desirable-development",
"metadata": {},
"source": [
"Adversarial Filter\n",
"==============\n",
"\n",
"I'm going to be using this as an avatar on the internet so it might end up going through a neural network one day and I want to mess with that. So, I'll run an adversarial examples filter over it but with a twist. I'm going to maximise the entropy over all the classes rather than try to make it predict any individual class."
]
},
{
"cell_type": "code",
"execution_count": 27,
"id": "fitting-break",
"metadata": {},
"outputs": [],
"source": [
"r_im = dataset.reconstruct_image(wrap_model(model), scale=1)\n",
"img = Image.fromarray(r_im)\n",
"img = img.resize((224,224))\n",
"r_im = np.array(img)"
]
},
{
"cell_type": "code",
"execution_count": 28,
"id": "breeding-hygiene",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(224, 224)"
]
},
"execution_count": 28,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"r_im.shape"
]
},
{
"cell_type": "code",
"execution_count": 29,
"id": "revised-judges",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<PIL.Image.Image image mode=L size=224x224 at 0x7FF24C1BED30>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"show_image(r_im)"
]
},
{
"cell_type": "code",
"execution_count": 30,
"id": "falling-myanmar",
"metadata": {},
"outputs": [],
"source": [
"import torchvision.models\n",
"import torchvision.transforms"
]
},
{
"cell_type": "code",
"execution_count": 31,
"id": "middle-harbor",
"metadata": {},
"outputs": [],
"source": [
"resnet = torchvision.models.resnet50(pretrained=True, progress=False)"
]
},
{
"cell_type": "code",
"execution_count": 32,
"id": "architectural-sequence",
"metadata": {},
"outputs": [],
"source": [
"# %load https://gist.githubusercontent.com/yrevar/942d3a0ac09ec9e5eb3a/raw/238f720ff059c1f82f368259d1ca4ffa5dd8f9f5/imagenet1000_clsidx_to_labels.txt\n",
"labels = {0: 'tench, Tinca tinca',\n",
" 1: 'goldfish, Carassius auratus',\n",
" 2: 'great white shark, white shark, man-eater, man-eating shark, Carcharodon carcharias',\n",
" 3: 'tiger shark, Galeocerdo cuvieri',\n",
" 4: 'hammerhead, hammerhead shark',\n",
" 5: 'electric ray, crampfish, numbfish, torpedo',\n",
" 6: 'stingray',\n",
" 7: 'cock',\n",
" 8: 'hen',\n",
" 9: 'ostrich, Struthio camelus',\n",
" 10: 'brambling, Fringilla montifringilla',\n",
" 11: 'goldfinch, Carduelis carduelis',\n",
" 12: 'house finch, linnet, Carpodacus mexicanus',\n",
" 13: 'junco, snowbird',\n",
" 14: 'indigo bunting, indigo finch, indigo bird, Passerina cyanea',\n",
" 15: 'robin, American robin, Turdus migratorius',\n",
" 16: 'bulbul',\n",
" 17: 'jay',\n",
" 18: 'magpie',\n",
" 19: 'chickadee',\n",
" 20: 'water ouzel, dipper',\n",
" 21: 'kite',\n",
" 22: 'bald eagle, American eagle, Haliaeetus leucocephalus',\n",
" 23: 'vulture',\n",
" 24: 'great grey owl, great gray owl, Strix nebulosa',\n",
" 25: 'European fire salamander, Salamandra salamandra',\n",
" 26: 'common newt, Triturus vulgaris',\n",
" 27: 'eft',\n",
" 28: 'spotted salamander, Ambystoma maculatum',\n",
" 29: 'axolotl, mud puppy, Ambystoma mexicanum',\n",
" 30: 'bullfrog, Rana catesbeiana',\n",
" 31: 'tree frog, tree-frog',\n",
" 32: 'tailed frog, bell toad, ribbed toad, tailed toad, Ascaphus trui',\n",
" 33: 'loggerhead, loggerhead turtle, Caretta caretta',\n",
" 34: 'leatherback turtle, leatherback, leathery turtle, Dermochelys coriacea',\n",
" 35: 'mud turtle',\n",
" 36: 'terrapin',\n",
" 37: 'box turtle, box tortoise',\n",
" 38: 'banded gecko',\n",
" 39: 'common iguana, iguana, Iguana iguana',\n",
" 40: 'American chameleon, anole, Anolis carolinensis',\n",
" 41: 'whiptail, whiptail lizard',\n",
" 42: 'agama',\n",
" 43: 'frilled lizard, Chlamydosaurus kingi',\n",
" 44: 'alligator lizard',\n",
" 45: 'Gila monster, Heloderma suspectum',\n",
" 46: 'green lizard, Lacerta viridis',\n",
" 47: 'African chameleon, Chamaeleo chamaeleon',\n",
" 48: 'Komodo dragon, Komodo lizard, dragon lizard, giant lizard, Varanus komodoensis',\n",
" 49: 'African crocodile, Nile crocodile, Crocodylus niloticus',\n",
" 50: 'American alligator, Alligator mississipiensis',\n",
" 51: 'triceratops',\n",
" 52: 'thunder snake, worm snake, Carphophis amoenus',\n",
" 53: 'ringneck snake, ring-necked snake, ring snake',\n",
" 54: 'hognose snake, puff adder, sand viper',\n",
" 55: 'green snake, grass snake',\n",
" 56: 'king snake, kingsnake',\n",
" 57: 'garter snake, grass snake',\n",
" 58: 'water snake',\n",
" 59: 'vine snake',\n",
" 60: 'night snake, Hypsiglena torquata',\n",
" 61: 'boa constrictor, Constrictor constrictor',\n",
" 62: 'rock python, rock snake, Python sebae',\n",
" 63: 'Indian cobra, Naja naja',\n",
" 64: 'green mamba',\n",
" 65: 'sea snake',\n",
" 66: 'horned viper, cerastes, sand viper, horned asp, Cerastes cornutus',\n",
" 67: 'diamondback, diamondback rattlesnake, Crotalus adamanteus',\n",
" 68: 'sidewinder, horned rattlesnake, Crotalus cerastes',\n",
" 69: 'trilobite',\n",
" 70: 'harvestman, daddy longlegs, Phalangium opilio',\n",
" 71: 'scorpion',\n",
" 72: 'black and gold garden spider, Argiope aurantia',\n",
" 73: 'barn spider, Araneus cavaticus',\n",
" 74: 'garden spider, Aranea diademata',\n",
" 75: 'black widow, Latrodectus mactans',\n",
" 76: 'tarantula',\n",
" 77: 'wolf spider, hunting spider',\n",
" 78: 'tick',\n",
" 79: 'centipede',\n",
" 80: 'black grouse',\n",
" 81: 'ptarmigan',\n",
" 82: 'ruffed grouse, partridge, Bonasa umbellus',\n",
" 83: 'prairie chicken, prairie grouse, prairie fowl',\n",
" 84: 'peacock',\n",
" 85: 'quail',\n",
" 86: 'partridge',\n",
" 87: 'African grey, African gray, Psittacus erithacus',\n",
" 88: 'macaw',\n",
" 89: 'sulphur-crested cockatoo, Kakatoe galerita, Cacatua galerita',\n",
" 90: 'lorikeet',\n",
" 91: 'coucal',\n",
" 92: 'bee eater',\n",
" 93: 'hornbill',\n",
" 94: 'hummingbird',\n",
" 95: 'jacamar',\n",
" 96: 'toucan',\n",
" 97: 'drake',\n",
" 98: 'red-breasted merganser, Mergus serrator',\n",
" 99: 'goose',\n",
" 100: 'black swan, Cygnus atratus',\n",
" 101: 'tusker',\n",
" 102: 'echidna, spiny anteater, anteater',\n",
" 103: 'platypus, duckbill, duckbilled platypus, duck-billed platypus, Ornithorhynchus anatinus',\n",
" 104: 'wallaby, brush kangaroo',\n",
" 105: 'koala, koala bear, kangaroo bear, native bear, Phascolarctos cinereus',\n",
" 106: 'wombat',\n",
" 107: 'jellyfish',\n",
" 108: 'sea anemone, anemone',\n",
" 109: 'brain coral',\n",
" 110: 'flatworm, platyhelminth',\n",
" 111: 'nematode, nematode worm, roundworm',\n",
" 112: 'conch',\n",
" 113: 'snail',\n",
" 114: 'slug',\n",
" 115: 'sea slug, nudibranch',\n",
" 116: 'chiton, coat-of-mail shell, sea cradle, polyplacophore',\n",
" 117: 'chambered nautilus, pearly nautilus, nautilus',\n",
" 118: 'Dungeness crab, Cancer magister',\n",
" 119: 'rock crab, Cancer irroratus',\n",
" 120: 'fiddler crab',\n",
" 121: 'king crab, Alaska crab, Alaskan king crab, Alaska king crab, Paralithodes camtschatica',\n",
" 122: 'American lobster, Northern lobster, Maine lobster, Homarus americanus',\n",
" 123: 'spiny lobster, langouste, rock lobster, crawfish, crayfish, sea crawfish',\n",
" 124: 'crayfish, crawfish, crawdad, crawdaddy',\n",
" 125: 'hermit crab',\n",
" 126: 'isopod',\n",
" 127: 'white stork, Ciconia ciconia',\n",
" 128: 'black stork, Ciconia nigra',\n",
" 129: 'spoonbill',\n",
" 130: 'flamingo',\n",
" 131: 'little blue heron, Egretta caerulea',\n",
" 132: 'American egret, great white heron, Egretta albus',\n",
" 133: 'bittern',\n",
" 134: 'crane',\n",
" 135: 'limpkin, Aramus pictus',\n",
" 136: 'European gallinule, Porphyrio porphyrio',\n",
" 137: 'American coot, marsh hen, mud hen, water hen, Fulica americana',\n",
" 138: 'bustard',\n",
" 139: 'ruddy turnstone, Arenaria interpres',\n",
" 140: 'red-backed sandpiper, dunlin, Erolia alpina',\n",
" 141: 'redshank, Tringa totanus',\n",
" 142: 'dowitcher',\n",
" 143: 'oystercatcher, oyster catcher',\n",
" 144: 'pelican',\n",
" 145: 'king penguin, Aptenodytes patagonica',\n",
" 146: 'albatross, mollymawk',\n",
" 147: 'grey whale, gray whale, devilfish, Eschrichtius gibbosus, Eschrichtius robustus',\n",
" 148: 'killer whale, killer, orca, grampus, sea wolf, Orcinus orca',\n",
" 149: 'dugong, Dugong dugon',\n",
" 150: 'sea lion',\n",
" 151: 'Chihuahua',\n",
" 152: 'Japanese spaniel',\n",
" 153: 'Maltese dog, Maltese terrier, Maltese',\n",
" 154: 'Pekinese, Pekingese, Peke',\n",
" 155: 'Shih-Tzu',\n",
" 156: 'Blenheim spaniel',\n",
" 157: 'papillon',\n",
" 158: 'toy terrier',\n",
" 159: 'Rhodesian ridgeback',\n",
" 160: 'Afghan hound, Afghan',\n",
" 161: 'basset, basset hound',\n",
" 162: 'beagle',\n",
" 163: 'bloodhound, sleuthhound',\n",
" 164: 'bluetick',\n",
" 165: 'black-and-tan coonhound',\n",
" 166: 'Walker hound, Walker foxhound',\n",
" 167: 'English foxhound',\n",
" 168: 'redbone',\n",
" 169: 'borzoi, Russian wolfhound',\n",
" 170: 'Irish wolfhound',\n",
" 171: 'Italian greyhound',\n",
" 172: 'whippet',\n",
" 173: 'Ibizan hound, Ibizan Podenco',\n",
" 174: 'Norwegian elkhound, elkhound',\n",
" 175: 'otterhound, otter hound',\n",
" 176: 'Saluki, gazelle hound',\n",
" 177: 'Scottish deerhound, deerhound',\n",
" 178: 'Weimaraner',\n",
" 179: 'Staffordshire bullterrier, Staffordshire bull terrier',\n",
" 180: 'American Staffordshire terrier, Staffordshire terrier, American pit bull terrier, pit bull terrier',\n",
" 181: 'Bedlington terrier',\n",
" 182: 'Border terrier',\n",
" 183: 'Kerry blue terrier',\n",
" 184: 'Irish terrier',\n",
" 185: 'Norfolk terrier',\n",
" 186: 'Norwich terrier',\n",
" 187: 'Yorkshire terrier',\n",
" 188: 'wire-haired fox terrier',\n",
" 189: 'Lakeland terrier',\n",
" 190: 'Sealyham terrier, Sealyham',\n",
" 191: 'Airedale, Airedale terrier',\n",
" 192: 'cairn, cairn terrier',\n",
" 193: 'Australian terrier',\n",
" 194: 'Dandie Dinmont, Dandie Dinmont terrier',\n",
" 195: 'Boston bull, Boston terrier',\n",
" 196: 'miniature schnauzer',\n",
" 197: 'giant schnauzer',\n",
" 198: 'standard schnauzer',\n",
" 199: 'Scotch terrier, Scottish terrier, Scottie',\n",
" 200: 'Tibetan terrier, chrysanthemum dog',\n",
" 201: 'silky terrier, Sydney silky',\n",
" 202: 'soft-coated wheaten terrier',\n",
" 203: 'West Highland white terrier',\n",
" 204: 'Lhasa, Lhasa apso',\n",
" 205: 'flat-coated retriever',\n",
" 206: 'curly-coated retriever',\n",
" 207: 'golden retriever',\n",
" 208: 'Labrador retriever',\n",
" 209: 'Chesapeake Bay retriever',\n",
" 210: 'German short-haired pointer',\n",
" 211: 'vizsla, Hungarian pointer',\n",
" 212: 'English setter',\n",
" 213: 'Irish setter, red setter',\n",
" 214: 'Gordon setter',\n",
" 215: 'Brittany spaniel',\n",
" 216: 'clumber, clumber spaniel',\n",
" 217: 'English springer, English springer spaniel',\n",
" 218: 'Welsh springer spaniel',\n",
" 219: 'cocker spaniel, English cocker spaniel, cocker',\n",
" 220: 'Sussex spaniel',\n",
" 221: 'Irish water spaniel',\n",
" 222: 'kuvasz',\n",
" 223: 'schipperke',\n",
" 224: 'groenendael',\n",
" 225: 'malinois',\n",
" 226: 'briard',\n",
" 227: 'kelpie',\n",
" 228: 'komondor',\n",
" 229: 'Old English sheepdog, bobtail',\n",
" 230: 'Shetland sheepdog, Shetland sheep dog, Shetland',\n",
" 231: 'collie',\n",
" 232: 'Border collie',\n",
" 233: 'Bouvier des Flandres, Bouviers des Flandres',\n",
" 234: 'Rottweiler',\n",
" 235: 'German shepherd, German shepherd dog, German police dog, alsatian',\n",
" 236: 'Doberman, Doberman pinscher',\n",
" 237: 'miniature pinscher',\n",
" 238: 'Greater Swiss Mountain dog',\n",
" 239: 'Bernese mountain dog',\n",
" 240: 'Appenzeller',\n",
" 241: 'EntleBucher',\n",
" 242: 'boxer',\n",
" 243: 'bull mastiff',\n",
" 244: 'Tibetan mastiff',\n",
" 245: 'French bulldog',\n",
" 246: 'Great Dane',\n",
" 247: 'Saint Bernard, St Bernard',\n",
" 248: 'Eskimo dog, husky',\n",
" 249: 'malamute, malemute, Alaskan malamute',\n",
" 250: 'Siberian husky',\n",
" 251: 'dalmatian, coach dog, carriage dog',\n",
" 252: 'affenpinscher, monkey pinscher, monkey dog',\n",
" 253: 'basenji',\n",
" 254: 'pug, pug-dog',\n",
" 255: 'Leonberg',\n",
" 256: 'Newfoundland, Newfoundland dog',\n",
" 257: 'Great Pyrenees',\n",
" 258: 'Samoyed, Samoyede',\n",
" 259: 'Pomeranian',\n",
" 260: 'chow, chow chow',\n",
" 261: 'keeshond',\n",
" 262: 'Brabancon griffon',\n",
" 263: 'Pembroke, Pembroke Welsh corgi',\n",
" 264: 'Cardigan, Cardigan Welsh corgi',\n",
" 265: 'toy poodle',\n",
" 266: 'miniature poodle',\n",
" 267: 'standard poodle',\n",
" 268: 'Mexican hairless',\n",
" 269: 'timber wolf, grey wolf, gray wolf, Canis lupus',\n",
" 270: 'white wolf, Arctic wolf, Canis lupus tundrarum',\n",
" 271: 'red wolf, maned wolf, Canis rufus, Canis niger',\n",
" 272: 'coyote, prairie wolf, brush wolf, Canis latrans',\n",
" 273: 'dingo, warrigal, warragal, Canis dingo',\n",
" 274: 'dhole, Cuon alpinus',\n",
" 275: 'African hunting dog, hyena dog, Cape hunting dog, Lycaon pictus',\n",
" 276: 'hyena, hyaena',\n",
" 277: 'red fox, Vulpes vulpes',\n",
" 278: 'kit fox, Vulpes macrotis',\n",
" 279: 'Arctic fox, white fox, Alopex lagopus',\n",
" 280: 'grey fox, gray fox, Urocyon cinereoargenteus',\n",
" 281: 'tabby, tabby cat',\n",
" 282: 'tiger cat',\n",
" 283: 'Persian cat',\n",
" 284: 'Siamese cat, Siamese',\n",
" 285: 'Egyptian cat',\n",
" 286: 'cougar, puma, catamount, mountain lion, painter, panther, Felis concolor',\n",
" 287: 'lynx, catamount',\n",
" 288: 'leopard, Panthera pardus',\n",
" 289: 'snow leopard, ounce, Panthera uncia',\n",
" 290: 'jaguar, panther, Panthera onca, Felis onca',\n",
" 291: 'lion, king of beasts, Panthera leo',\n",
" 292: 'tiger, Panthera tigris',\n",
" 293: 'cheetah, chetah, Acinonyx jubatus',\n",
" 294: 'brown bear, bruin, Ursus arctos',\n",
" 295: 'American black bear, black bear, Ursus americanus, Euarctos americanus',\n",
" 296: 'ice bear, polar bear, Ursus Maritimus, Thalarctos maritimus',\n",
" 297: 'sloth bear, Melursus ursinus, Ursus ursinus',\n",
" 298: 'mongoose',\n",
" 299: 'meerkat, mierkat',\n",
" 300: 'tiger beetle',\n",
" 301: 'ladybug, ladybeetle, lady beetle, ladybird, ladybird beetle',\n",
" 302: 'ground beetle, carabid beetle',\n",
" 303: 'long-horned beetle, longicorn, longicorn beetle',\n",
" 304: 'leaf beetle, chrysomelid',\n",
" 305: 'dung beetle',\n",
" 306: 'rhinoceros beetle',\n",
" 307: 'weevil',\n",
" 308: 'fly',\n",
" 309: 'bee',\n",
" 310: 'ant, emmet, pismire',\n",
" 311: 'grasshopper, hopper',\n",
" 312: 'cricket',\n",
" 313: 'walking stick, walkingstick, stick insect',\n",
" 314: 'cockroach, roach',\n",
" 315: 'mantis, mantid',\n",
" 316: 'cicada, cicala',\n",
" 317: 'leafhopper',\n",
" 318: 'lacewing, lacewing fly',\n",
" 319: \"dragonfly, darning needle, devil's darning needle, sewing needle, snake feeder, snake doctor, mosquito hawk, skeeter hawk\",\n",
" 320: 'damselfly',\n",
" 321: 'admiral',\n",
" 322: 'ringlet, ringlet butterfly',\n",
" 323: 'monarch, monarch butterfly, milkweed butterfly, Danaus plexippus',\n",
" 324: 'cabbage butterfly',\n",
" 325: 'sulphur butterfly, sulfur butterfly',\n",
" 326: 'lycaenid, lycaenid butterfly',\n",
" 327: 'starfish, sea star',\n",
" 328: 'sea urchin',\n",
" 329: 'sea cucumber, holothurian',\n",
" 330: 'wood rabbit, cottontail, cottontail rabbit',\n",
" 331: 'hare',\n",
" 332: 'Angora, Angora rabbit',\n",
" 333: 'hamster',\n",
" 334: 'porcupine, hedgehog',\n",
" 335: 'fox squirrel, eastern fox squirrel, Sciurus niger',\n",
" 336: 'marmot',\n",
" 337: 'beaver',\n",
" 338: 'guinea pig, Cavia cobaya',\n",
" 339: 'sorrel',\n",
" 340: 'zebra',\n",
" 341: 'hog, pig, grunter, squealer, Sus scrofa',\n",
" 342: 'wild boar, boar, Sus scrofa',\n",
" 343: 'warthog',\n",
" 344: 'hippopotamus, hippo, river horse, Hippopotamus amphibius',\n",
" 345: 'ox',\n",
" 346: 'water buffalo, water ox, Asiatic buffalo, Bubalus bubalis',\n",
" 347: 'bison',\n",
" 348: 'ram, tup',\n",
" 349: 'bighorn, bighorn sheep, cimarron, Rocky Mountain bighorn, Rocky Mountain sheep, Ovis canadensis',\n",
" 350: 'ibex, Capra ibex',\n",
" 351: 'hartebeest',\n",
" 352: 'impala, Aepyceros melampus',\n",
" 353: 'gazelle',\n",
" 354: 'Arabian camel, dromedary, Camelus dromedarius',\n",
" 355: 'llama',\n",
" 356: 'weasel',\n",
" 357: 'mink',\n",
" 358: 'polecat, fitch, foulmart, foumart, Mustela putorius',\n",
" 359: 'black-footed ferret, ferret, Mustela nigripes',\n",
" 360: 'otter',\n",
" 361: 'skunk, polecat, wood pussy',\n",
" 362: 'badger',\n",
" 363: 'armadillo',\n",
" 364: 'three-toed sloth, ai, Bradypus tridactylus',\n",
" 365: 'orangutan, orang, orangutang, Pongo pygmaeus',\n",
" 366: 'gorilla, Gorilla gorilla',\n",
" 367: 'chimpanzee, chimp, Pan troglodytes',\n",
" 368: 'gibbon, Hylobates lar',\n",
" 369: 'siamang, Hylobates syndactylus, Symphalangus syndactylus',\n",
" 370: 'guenon, guenon monkey',\n",
" 371: 'patas, hussar monkey, Erythrocebus patas',\n",
" 372: 'baboon',\n",
" 373: 'macaque',\n",
" 374: 'langur',\n",
" 375: 'colobus, colobus monkey',\n",
" 376: 'proboscis monkey, Nasalis larvatus',\n",
" 377: 'marmoset',\n",
" 378: 'capuchin, ringtail, Cebus capucinus',\n",
" 379: 'howler monkey, howler',\n",
" 380: 'titi, titi monkey',\n",
" 381: 'spider monkey, Ateles geoffroyi',\n",
" 382: 'squirrel monkey, Saimiri sciureus',\n",
" 383: 'Madagascar cat, ring-tailed lemur, Lemur catta',\n",
" 384: 'indri, indris, Indri indri, Indri brevicaudatus',\n",
" 385: 'Indian elephant, Elephas maximus',\n",
" 386: 'African elephant, Loxodonta africana',\n",
" 387: 'lesser panda, red panda, panda, bear cat, cat bear, Ailurus fulgens',\n",
" 388: 'giant panda, panda, panda bear, coon bear, Ailuropoda melanoleuca',\n",
" 389: 'barracouta, snoek',\n",
" 390: 'eel',\n",
" 391: 'coho, cohoe, coho salmon, blue jack, silver salmon, Oncorhynchus kisutch',\n",
" 392: 'rock beauty, Holocanthus tricolor',\n",
" 393: 'anemone fish',\n",
" 394: 'sturgeon',\n",
" 395: 'gar, garfish, garpike, billfish, Lepisosteus osseus',\n",
" 396: 'lionfish',\n",
" 397: 'puffer, pufferfish, blowfish, globefish',\n",
" 398: 'abacus',\n",
" 399: 'abaya',\n",
" 400: \"academic gown, academic robe, judge's robe\",\n",
" 401: 'accordion, piano accordion, squeeze box',\n",
" 402: 'acoustic guitar',\n",
" 403: 'aircraft carrier, carrier, flattop, attack aircraft carrier',\n",
" 404: 'airliner',\n",
" 405: 'airship, dirigible',\n",
" 406: 'altar',\n",
" 407: 'ambulance',\n",
" 408: 'amphibian, amphibious vehicle',\n",
" 409: 'analog clock',\n",
" 410: 'apiary, bee house',\n",
" 411: 'apron',\n",
" 412: 'ashcan, trash can, garbage can, wastebin, ash bin, ash-bin, ashbin, dustbin, trash barrel, trash bin',\n",
" 413: 'assault rifle, assault gun',\n",
" 414: 'backpack, back pack, knapsack, packsack, rucksack, haversack',\n",
" 415: 'bakery, bakeshop, bakehouse',\n",
" 416: 'balance beam, beam',\n",
" 417: 'balloon',\n",
" 418: 'ballpoint, ballpoint pen, ballpen, Biro',\n",
" 419: 'Band Aid',\n",
" 420: 'banjo',\n",
" 421: 'bannister, banister, balustrade, balusters, handrail',\n",
" 422: 'barbell',\n",
" 423: 'barber chair',\n",
" 424: 'barbershop',\n",
" 425: 'barn',\n",
" 426: 'barometer',\n",
" 427: 'barrel, cask',\n",
" 428: 'barrow, garden cart, lawn cart, wheelbarrow',\n",
" 429: 'baseball',\n",
" 430: 'basketball',\n",
" 431: 'bassinet',\n",
" 432: 'bassoon',\n",
" 433: 'bathing cap, swimming cap',\n",
" 434: 'bath towel',\n",
" 435: 'bathtub, bathing tub, bath, tub',\n",
" 436: 'beach wagon, station wagon, wagon, estate car, beach waggon, station waggon, waggon',\n",
" 437: 'beacon, lighthouse, beacon light, pharos',\n",
" 438: 'beaker',\n",
" 439: 'bearskin, busby, shako',\n",
" 440: 'beer bottle',\n",
" 441: 'beer glass',\n",
" 442: 'bell cote, bell cot',\n",
" 443: 'bib',\n",
" 444: 'bicycle-built-for-two, tandem bicycle, tandem',\n",
" 445: 'bikini, two-piece',\n",
" 446: 'binder, ring-binder',\n",
" 447: 'binoculars, field glasses, opera glasses',\n",
" 448: 'birdhouse',\n",
" 449: 'boathouse',\n",
" 450: 'bobsled, bobsleigh, bob',\n",
" 451: 'bolo tie, bolo, bola tie, bola',\n",
" 452: 'bonnet, poke bonnet',\n",
" 453: 'bookcase',\n",
" 454: 'bookshop, bookstore, bookstall',\n",
" 455: 'bottlecap',\n",
" 456: 'bow',\n",
" 457: 'bow tie, bow-tie, bowtie',\n",
" 458: 'brass, memorial tablet, plaque',\n",
" 459: 'brassiere, bra, bandeau',\n",
" 460: 'breakwater, groin, groyne, mole, bulwark, seawall, jetty',\n",
" 461: 'breastplate, aegis, egis',\n",
" 462: 'broom',\n",
" 463: 'bucket, pail',\n",
" 464: 'buckle',\n",
" 465: 'bulletproof vest',\n",
" 466: 'bullet train, bullet',\n",
" 467: 'butcher shop, meat market',\n",
" 468: 'cab, hack, taxi, taxicab',\n",
" 469: 'caldron, cauldron',\n",
" 470: 'candle, taper, wax light',\n",
" 471: 'cannon',\n",
" 472: 'canoe',\n",
" 473: 'can opener, tin opener',\n",
" 474: 'cardigan',\n",
" 475: 'car mirror',\n",
" 476: 'carousel, carrousel, merry-go-round, roundabout, whirligig',\n",
" 477: \"carpenter's kit, tool kit\",\n",
" 478: 'carton',\n",
" 479: 'car wheel',\n",
" 480: 'cash machine, cash dispenser, automated teller machine, automatic teller machine, automated teller, automatic teller, ATM',\n",
" 481: 'cassette',\n",
" 482: 'cassette player',\n",
" 483: 'castle',\n",
" 484: 'catamaran',\n",
" 485: 'CD player',\n",
" 486: 'cello, violoncello',\n",
" 487: 'cellular telephone, cellular phone, cellphone, cell, mobile phone',\n",
" 488: 'chain',\n",
" 489: 'chainlink fence',\n",
" 490: 'chain mail, ring mail, mail, chain armor, chain armour, ring armor, ring armour',\n",
" 491: 'chain saw, chainsaw',\n",
" 492: 'chest',\n",
" 493: 'chiffonier, commode',\n",
" 494: 'chime, bell, gong',\n",
" 495: 'china cabinet, china closet',\n",
" 496: 'Christmas stocking',\n",
" 497: 'church, church building',\n",
" 498: 'cinema, movie theater, movie theatre, movie house, picture palace',\n",
" 499: 'cleaver, meat cleaver, chopper',\n",
" 500: 'cliff dwelling',\n",
" 501: 'cloak',\n",
" 502: 'clog, geta, patten, sabot',\n",
" 503: 'cocktail shaker',\n",
" 504: 'coffee mug',\n",
" 505: 'coffeepot',\n",
" 506: 'coil, spiral, volute, whorl, helix',\n",
" 507: 'combination lock',\n",
" 508: 'computer keyboard, keypad',\n",
" 509: 'confectionery, confectionary, candy store',\n",
" 510: 'container ship, containership, container vessel',\n",
" 511: 'convertible',\n",
" 512: 'corkscrew, bottle screw',\n",
" 513: 'cornet, horn, trumpet, trump',\n",
" 514: 'cowboy boot',\n",
" 515: 'cowboy hat, ten-gallon hat',\n",
" 516: 'cradle',\n",
" 517: 'crane',\n",
" 518: 'crash helmet',\n",
" 519: 'crate',\n",
" 520: 'crib, cot',\n",
" 521: 'Crock Pot',\n",
" 522: 'croquet ball',\n",
" 523: 'crutch',\n",
" 524: 'cuirass',\n",
" 525: 'dam, dike, dyke',\n",
" 526: 'desk',\n",
" 527: 'desktop computer',\n",
" 528: 'dial telephone, dial phone',\n",
" 529: 'diaper, nappy, napkin',\n",
" 530: 'digital clock',\n",
" 531: 'digital watch',\n",
" 532: 'dining table, board',\n",
" 533: 'dishrag, dishcloth',\n",
" 534: 'dishwasher, dish washer, dishwashing machine',\n",
" 535: 'disk brake, disc brake',\n",
" 536: 'dock, dockage, docking facility',\n",
" 537: 'dogsled, dog sled, dog sleigh',\n",
" 538: 'dome',\n",
" 539: 'doormat, welcome mat',\n",
" 540: 'drilling platform, offshore rig',\n",
" 541: 'drum, membranophone, tympan',\n",
" 542: 'drumstick',\n",
" 543: 'dumbbell',\n",
" 544: 'Dutch oven',\n",
" 545: 'electric fan, blower',\n",
" 546: 'electric guitar',\n",
" 547: 'electric locomotive',\n",
" 548: 'entertainment center',\n",
" 549: 'envelope',\n",
" 550: 'espresso maker',\n",
" 551: 'face powder',\n",
" 552: 'feather boa, boa',\n",
" 553: 'file, file cabinet, filing cabinet',\n",
" 554: 'fireboat',\n",
" 555: 'fire engine, fire truck',\n",
" 556: 'fire screen, fireguard',\n",
" 557: 'flagpole, flagstaff',\n",
" 558: 'flute, transverse flute',\n",
" 559: 'folding chair',\n",
" 560: 'football helmet',\n",
" 561: 'forklift',\n",
" 562: 'fountain',\n",
" 563: 'fountain pen',\n",
" 564: 'four-poster',\n",
" 565: 'freight car',\n",
" 566: 'French horn, horn',\n",
" 567: 'frying pan, frypan, skillet',\n",
" 568: 'fur coat',\n",
" 569: 'garbage truck, dustcart',\n",
" 570: 'gasmask, respirator, gas helmet',\n",
" 571: 'gas pump, gasoline pump, petrol pump, island dispenser',\n",
" 572: 'goblet',\n",
" 573: 'go-kart',\n",
" 574: 'golf ball',\n",
" 575: 'golfcart, golf cart',\n",
" 576: 'gondola',\n",
" 577: 'gong, tam-tam',\n",
" 578: 'gown',\n",
" 579: 'grand piano, grand',\n",
" 580: 'greenhouse, nursery, glasshouse',\n",
" 581: 'grille, radiator grille',\n",
" 582: 'grocery store, grocery, food market, market',\n",
" 583: 'guillotine',\n",
" 584: 'hair slide',\n",
" 585: 'hair spray',\n",
" 586: 'half track',\n",
" 587: 'hammer',\n",
" 588: 'hamper',\n",
" 589: 'hand blower, blow dryer, blow drier, hair dryer, hair drier',\n",
" 590: 'hand-held computer, hand-held microcomputer',\n",
" 591: 'handkerchief, hankie, hanky, hankey',\n",
" 592: 'hard disc, hard disk, fixed disk',\n",
" 593: 'harmonica, mouth organ, harp, mouth harp',\n",
" 594: 'harp',\n",
" 595: 'harvester, reaper',\n",
" 596: 'hatchet',\n",
" 597: 'holster',\n",
" 598: 'home theater, home theatre',\n",
" 599: 'honeycomb',\n",
" 600: 'hook, claw',\n",
" 601: 'hoopskirt, crinoline',\n",
" 602: 'horizontal bar, high bar',\n",
" 603: 'horse cart, horse-cart',\n",
" 604: 'hourglass',\n",
" 605: 'iPod',\n",
" 606: 'iron, smoothing iron',\n",
" 607: \"jack-o'-lantern\",\n",
" 608: 'jean, blue jean, denim',\n",
" 609: 'jeep, landrover',\n",
" 610: 'jersey, T-shirt, tee shirt',\n",
" 611: 'jigsaw puzzle',\n",
" 612: 'jinrikisha, ricksha, rickshaw',\n",
" 613: 'joystick',\n",
" 614: 'kimono',\n",
" 615: 'knee pad',\n",
" 616: 'knot',\n",
" 617: 'lab coat, laboratory coat',\n",
" 618: 'ladle',\n",
" 619: 'lampshade, lamp shade',\n",
" 620: 'laptop, laptop computer',\n",
" 621: 'lawn mower, mower',\n",
" 622: 'lens cap, lens cover',\n",
" 623: 'letter opener, paper knife, paperknife',\n",
" 624: 'library',\n",
" 625: 'lifeboat',\n",
" 626: 'lighter, light, igniter, ignitor',\n",
" 627: 'limousine, limo',\n",
" 628: 'liner, ocean liner',\n",
" 629: 'lipstick, lip rouge',\n",
" 630: 'Loafer',\n",
" 631: 'lotion',\n",
" 632: 'loudspeaker, speaker, speaker unit, loudspeaker system, speaker system',\n",
" 633: \"loupe, jeweler's loupe\",\n",
" 634: 'lumbermill, sawmill',\n",
" 635: 'magnetic compass',\n",
" 636: 'mailbag, postbag',\n",
" 637: 'mailbox, letter box',\n",
" 638: 'maillot',\n",
" 639: 'maillot, tank suit',\n",
" 640: 'manhole cover',\n",
" 641: 'maraca',\n",
" 642: 'marimba, xylophone',\n",
" 643: 'mask',\n",
" 644: 'matchstick',\n",
" 645: 'maypole',\n",
" 646: 'maze, labyrinth',\n",
" 647: 'measuring cup',\n",
" 648: 'medicine chest, medicine cabinet',\n",
" 649: 'megalith, megalithic structure',\n",
" 650: 'microphone, mike',\n",
" 651: 'microwave, microwave oven',\n",
" 652: 'military uniform',\n",
" 653: 'milk can',\n",
" 654: 'minibus',\n",
" 655: 'miniskirt, mini',\n",
" 656: 'minivan',\n",
" 657: 'missile',\n",
" 658: 'mitten',\n",
" 659: 'mixing bowl',\n",
" 660: 'mobile home, manufactured home',\n",
" 661: 'Model T',\n",
" 662: 'modem',\n",
" 663: 'monastery',\n",
" 664: 'monitor',\n",
" 665: 'moped',\n",
" 666: 'mortar',\n",
" 667: 'mortarboard',\n",
" 668: 'mosque',\n",
" 669: 'mosquito net',\n",
" 670: 'motor scooter, scooter',\n",
" 671: 'mountain bike, all-terrain bike, off-roader',\n",
" 672: 'mountain tent',\n",
" 673: 'mouse, computer mouse',\n",
" 674: 'mousetrap',\n",
" 675: 'moving van',\n",
" 676: 'muzzle',\n",
" 677: 'nail',\n",
" 678: 'neck brace',\n",
" 679: 'necklace',\n",
" 680: 'nipple',\n",
" 681: 'notebook, notebook computer',\n",
" 682: 'obelisk',\n",
" 683: 'oboe, hautboy, hautbois',\n",
" 684: 'ocarina, sweet potato',\n",
" 685: 'odometer, hodometer, mileometer, milometer',\n",
" 686: 'oil filter',\n",
" 687: 'organ, pipe organ',\n",
" 688: 'oscilloscope, scope, cathode-ray oscilloscope, CRO',\n",
" 689: 'overskirt',\n",
" 690: 'oxcart',\n",
" 691: 'oxygen mask',\n",
" 692: 'packet',\n",
" 693: 'paddle, boat paddle',\n",
" 694: 'paddlewheel, paddle wheel',\n",
" 695: 'padlock',\n",
" 696: 'paintbrush',\n",
" 697: \"pajama, pyjama, pj's, jammies\",\n",
" 698: 'palace',\n",
" 699: 'panpipe, pandean pipe, syrinx',\n",
" 700: 'paper towel',\n",
" 701: 'parachute, chute',\n",
" 702: 'parallel bars, bars',\n",
" 703: 'park bench',\n",
" 704: 'parking meter',\n",
" 705: 'passenger car, coach, carriage',\n",
" 706: 'patio, terrace',\n",
" 707: 'pay-phone, pay-station',\n",
" 708: 'pedestal, plinth, footstall',\n",
" 709: 'pencil box, pencil case',\n",
" 710: 'pencil sharpener',\n",
" 711: 'perfume, essence',\n",
" 712: 'Petri dish',\n",
" 713: 'photocopier',\n",
" 714: 'pick, plectrum, plectron',\n",
" 715: 'pickelhaube',\n",
" 716: 'picket fence, paling',\n",
" 717: 'pickup, pickup truck',\n",
" 718: 'pier',\n",
" 719: 'piggy bank, penny bank',\n",
" 720: 'pill bottle',\n",
" 721: 'pillow',\n",
" 722: 'ping-pong ball',\n",
" 723: 'pinwheel',\n",
" 724: 'pirate, pirate ship',\n",
" 725: 'pitcher, ewer',\n",
" 726: \"plane, carpenter's plane, woodworking plane\",\n",
" 727: 'planetarium',\n",
" 728: 'plastic bag',\n",
" 729: 'plate rack',\n",
" 730: 'plow, plough',\n",
" 731: \"plunger, plumber's helper\",\n",
" 732: 'Polaroid camera, Polaroid Land camera',\n",
" 733: 'pole',\n",
" 734: 'police van, police wagon, paddy wagon, patrol wagon, wagon, black Maria',\n",
" 735: 'poncho',\n",
" 736: 'pool table, billiard table, snooker table',\n",
" 737: 'pop bottle, soda bottle',\n",
" 738: 'pot, flowerpot',\n",
" 739: \"potter's wheel\",\n",
" 740: 'power drill',\n",
" 741: 'prayer rug, prayer mat',\n",
" 742: 'printer',\n",
" 743: 'prison, prison house',\n",
" 744: 'projectile, missile',\n",
" 745: 'projector',\n",
" 746: 'puck, hockey puck',\n",
" 747: 'punching bag, punch bag, punching ball, punchball',\n",
" 748: 'purse',\n",
" 749: 'quill, quill pen',\n",
" 750: 'quilt, comforter, comfort, puff',\n",
" 751: 'racer, race car, racing car',\n",
" 752: 'racket, racquet',\n",
" 753: 'radiator',\n",
" 754: 'radio, wireless',\n",
" 755: 'radio telescope, radio reflector',\n",
" 756: 'rain barrel',\n",
" 757: 'recreational vehicle, RV, R.V.',\n",
" 758: 'reel',\n",
" 759: 'reflex camera',\n",
" 760: 'refrigerator, icebox',\n",
" 761: 'remote control, remote',\n",
" 762: 'restaurant, eating house, eating place, eatery',\n",
" 763: 'revolver, six-gun, six-shooter',\n",
" 764: 'rifle',\n",
" 765: 'rocking chair, rocker',\n",
" 766: 'rotisserie',\n",
" 767: 'rubber eraser, rubber, pencil eraser',\n",
" 768: 'rugby ball',\n",
" 769: 'rule, ruler',\n",
" 770: 'running shoe',\n",
" 771: 'safe',\n",
" 772: 'safety pin',\n",
" 773: 'saltshaker, salt shaker',\n",
" 774: 'sandal',\n",
" 775: 'sarong',\n",
" 776: 'sax, saxophone',\n",
" 777: 'scabbard',\n",
" 778: 'scale, weighing machine',\n",
" 779: 'school bus',\n",
" 780: 'schooner',\n",
" 781: 'scoreboard',\n",
" 782: 'screen, CRT screen',\n",
" 783: 'screw',\n",
" 784: 'screwdriver',\n",
" 785: 'seat belt, seatbelt',\n",
" 786: 'sewing machine',\n",
" 787: 'shield, buckler',\n",
" 788: 'shoe shop, shoe-shop, shoe store',\n",
" 789: 'shoji',\n",
" 790: 'shopping basket',\n",
" 791: 'shopping cart',\n",
" 792: 'shovel',\n",
" 793: 'shower cap',\n",
" 794: 'shower curtain',\n",
" 795: 'ski',\n",
" 796: 'ski mask',\n",
" 797: 'sleeping bag',\n",
" 798: 'slide rule, slipstick',\n",
" 799: 'sliding door',\n",
" 800: 'slot, one-armed bandit',\n",
" 801: 'snorkel',\n",
" 802: 'snowmobile',\n",
" 803: 'snowplow, snowplough',\n",
" 804: 'soap dispenser',\n",
" 805: 'soccer ball',\n",
" 806: 'sock',\n",
" 807: 'solar dish, solar collector, solar furnace',\n",
" 808: 'sombrero',\n",
" 809: 'soup bowl',\n",
" 810: 'space bar',\n",
" 811: 'space heater',\n",
" 812: 'space shuttle',\n",
" 813: 'spatula',\n",
" 814: 'speedboat',\n",
" 815: \"spider web, spider's web\",\n",
" 816: 'spindle',\n",
" 817: 'sports car, sport car',\n",
" 818: 'spotlight, spot',\n",
" 819: 'stage',\n",
" 820: 'steam locomotive',\n",
" 821: 'steel arch bridge',\n",
" 822: 'steel drum',\n",
" 823: 'stethoscope',\n",
" 824: 'stole',\n",
" 825: 'stone wall',\n",
" 826: 'stopwatch, stop watch',\n",
" 827: 'stove',\n",
" 828: 'strainer',\n",
" 829: 'streetcar, tram, tramcar, trolley, trolley car',\n",
" 830: 'stretcher',\n",
" 831: 'studio couch, day bed',\n",
" 832: 'stupa, tope',\n",
" 833: 'submarine, pigboat, sub, U-boat',\n",
" 834: 'suit, suit of clothes',\n",
" 835: 'sundial',\n",
" 836: 'sunglass',\n",
" 837: 'sunglasses, dark glasses, shades',\n",
" 838: 'sunscreen, sunblock, sun blocker',\n",
" 839: 'suspension bridge',\n",
" 840: 'swab, swob, mop',\n",
" 841: 'sweatshirt',\n",
" 842: 'swimming trunks, bathing trunks',\n",
" 843: 'swing',\n",
" 844: 'switch, electric switch, electrical switch',\n",
" 845: 'syringe',\n",
" 846: 'table lamp',\n",
" 847: 'tank, army tank, armored combat vehicle, armoured combat vehicle',\n",
" 848: 'tape player',\n",
" 849: 'teapot',\n",
" 850: 'teddy, teddy bear',\n",
" 851: 'television, television system',\n",
" 852: 'tennis ball',\n",
" 853: 'thatch, thatched roof',\n",
" 854: 'theater curtain, theatre curtain',\n",
" 855: 'thimble',\n",
" 856: 'thresher, thrasher, threshing machine',\n",
" 857: 'throne',\n",
" 858: 'tile roof',\n",
" 859: 'toaster',\n",
" 860: 'tobacco shop, tobacconist shop, tobacconist',\n",
" 861: 'toilet seat',\n",
" 862: 'torch',\n",
" 863: 'totem pole',\n",
" 864: 'tow truck, tow car, wrecker',\n",
" 865: 'toyshop',\n",
" 866: 'tractor',\n",
" 867: 'trailer truck, tractor trailer, trucking rig, rig, articulated lorry, semi',\n",
" 868: 'tray',\n",
" 869: 'trench coat',\n",
" 870: 'tricycle, trike, velocipede',\n",
" 871: 'trimaran',\n",
" 872: 'tripod',\n",
" 873: 'triumphal arch',\n",
" 874: 'trolleybus, trolley coach, trackless trolley',\n",
" 875: 'trombone',\n",
" 876: 'tub, vat',\n",
" 877: 'turnstile',\n",
" 878: 'typewriter keyboard',\n",
" 879: 'umbrella',\n",
" 880: 'unicycle, monocycle',\n",
" 881: 'upright, upright piano',\n",
" 882: 'vacuum, vacuum cleaner',\n",
" 883: 'vase',\n",
" 884: 'vault',\n",
" 885: 'velvet',\n",
" 886: 'vending machine',\n",
" 887: 'vestment',\n",
" 888: 'viaduct',\n",
" 889: 'violin, fiddle',\n",
" 890: 'volleyball',\n",
" 891: 'waffle iron',\n",
" 892: 'wall clock',\n",
" 893: 'wallet, billfold, notecase, pocketbook',\n",
" 894: 'wardrobe, closet, press',\n",
" 895: 'warplane, military plane',\n",
" 896: 'washbasin, handbasin, washbowl, lavabo, wash-hand basin',\n",
" 897: 'washer, automatic washer, washing machine',\n",
" 898: 'water bottle',\n",
" 899: 'water jug',\n",
" 900: 'water tower',\n",
" 901: 'whiskey jug',\n",
" 902: 'whistle',\n",
" 903: 'wig',\n",
" 904: 'window screen',\n",
" 905: 'window shade',\n",
" 906: 'Windsor tie',\n",
" 907: 'wine bottle',\n",
" 908: 'wing',\n",
" 909: 'wok',\n",
" 910: 'wooden spoon',\n",
" 911: 'wool, woolen, woollen',\n",
" 912: 'worm fence, snake fence, snake-rail fence, Virginia fence',\n",
" 913: 'wreck',\n",
" 914: 'yawl',\n",
" 915: 'yurt',\n",
" 916: 'web site, website, internet site, site',\n",
" 917: 'comic book',\n",
" 918: 'crossword puzzle, crossword',\n",
" 919: 'street sign',\n",
" 920: 'traffic light, traffic signal, stoplight',\n",
" 921: 'book jacket, dust cover, dust jacket, dust wrapper',\n",
" 922: 'menu',\n",
" 923: 'plate',\n",
" 924: 'guacamole',\n",
" 925: 'consomme',\n",
" 926: 'hot pot, hotpot',\n",
" 927: 'trifle',\n",
" 928: 'ice cream, icecream',\n",
" 929: 'ice lolly, lolly, lollipop, popsicle',\n",
" 930: 'French loaf',\n",
" 931: 'bagel, beigel',\n",
" 932: 'pretzel',\n",
" 933: 'cheeseburger',\n",
" 934: 'hotdog, hot dog, red hot',\n",
" 935: 'mashed potato',\n",
" 936: 'head cabbage',\n",
" 937: 'broccoli',\n",
" 938: 'cauliflower',\n",
" 939: 'zucchini, courgette',\n",
" 940: 'spaghetti squash',\n",
" 941: 'acorn squash',\n",
" 942: 'butternut squash',\n",
" 943: 'cucumber, cuke',\n",
" 944: 'artichoke, globe artichoke',\n",
" 945: 'bell pepper',\n",
" 946: 'cardoon',\n",
" 947: 'mushroom',\n",
" 948: 'Granny Smith',\n",
" 949: 'strawberry',\n",
" 950: 'orange',\n",
" 951: 'lemon',\n",
" 952: 'fig',\n",
" 953: 'pineapple, ananas',\n",
" 954: 'banana',\n",
" 955: 'jackfruit, jak, jack',\n",
" 956: 'custard apple',\n",
" 957: 'pomegranate',\n",
" 958: 'hay',\n",
" 959: 'carbonara',\n",
" 960: 'chocolate sauce, chocolate syrup',\n",
" 961: 'dough',\n",
" 962: 'meat loaf, meatloaf',\n",
" 963: 'pizza, pizza pie',\n",
" 964: 'potpie',\n",
" 965: 'burrito',\n",
" 966: 'red wine',\n",
" 967: 'espresso',\n",
" 968: 'cup',\n",
" 969: 'eggnog',\n",
" 970: 'alp',\n",
" 971: 'bubble',\n",
" 972: 'cliff, drop, drop-off',\n",
" 973: 'coral reef',\n",
" 974: 'geyser',\n",
" 975: 'lakeside, lakeshore',\n",
" 976: 'promontory, headland, head, foreland',\n",
" 977: 'sandbar, sand bar',\n",
" 978: 'seashore, coast, seacoast, sea-coast',\n",
" 979: 'valley, vale',\n",
" 980: 'volcano',\n",
" 981: 'ballplayer, baseball player',\n",
" 982: 'groom, bridegroom',\n",
" 983: 'scuba diver',\n",
" 984: 'rapeseed',\n",
" 985: 'daisy',\n",
" 986: \"yellow lady's slipper, yellow lady-slipper, Cypripedium calceolus, Cypripedium parviflorum\",\n",
" 987: 'corn',\n",
" 988: 'acorn',\n",
" 989: 'hip, rose hip, rosehip',\n",
" 990: 'buckeye, horse chestnut, conker',\n",
" 991: 'coral fungus',\n",
" 992: 'agaric',\n",
" 993: 'gyromitra',\n",
" 994: 'stinkhorn, carrion fungus',\n",
" 995: 'earthstar',\n",
" 996: 'hen-of-the-woods, hen of the woods, Polyporus frondosus, Grifola frondosa',\n",
" 997: 'bolete',\n",
" 998: 'ear, spike, capitulum',\n",
" 999: 'toilet tissue, toilet paper, bathroom tissue'}"
]
},
{
"cell_type": "code",
"execution_count": 33,
"id": "dramatic-absence",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Step 10000, entropy: 6.88 < max 6.91\n",
"Top 5 predictions:\n",
" eel\n",
" passenger car, coach, carriage\n",
" terrapin\n",
" weasel\n",
" hook, claw\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<PIL.Image.Image image mode=RGB size=224x224 at 0x7FF24C4471C0>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"im = torch.tensor(r_im).view(1, 1, 224, 224).repeat(1,3,1,1).float()\n",
"im_max = im.max()\n",
"im = im/im.max()\n",
"normalize = torchvision.transforms.Normalize(mean=[0.485, 0.456, 0.406],\n",
" std=[0.229, 0.224, 0.225])\n",
"im = im.clone()\n",
"im.requires_grad = True\n",
"\n",
"px = 1./1000*torch.ones(1000)\n",
"max_entropy = -torch.sum(px*torch.log(px)).item()\n",
"\n",
"def show_tensor(t):\n",
" if t.device != 'cpu':\n",
" t = t.cpu()\n",
" t = t*im_max\n",
" t = t.to(torch.uint8)\n",
" img = t.squeeze().permute(1,2,0).numpy()\n",
" show_image(img)\n",
"\n",
"def entropy(x):\n",
" assert (torch.exp(x).sum() - 1.) < 1e-5\n",
" px = torch.exp(x)\n",
" return -torch.sum(px*torch.log(px))\n",
"\n",
"def top_5(logits, prefix=\"\"):\n",
" for i in torch.argsort(logits)[-5:]:\n",
" print(prefix+labels[i.item()])\n",
"\n",
"optimizer = optim.Adam([im])\n",
"resnet = resnet.to(device)\n",
"normalize = normalize.to(device)\n",
"for i in range(10000):\n",
" x = im.to(device)\n",
" class Closure():\n",
" def __call__(self):\n",
" optimizer.zero_grad()\n",
" out = F.log_softmax(resnet(normalize(x)),1).squeeze()\n",
" if out.device != 'cpu':\n",
" out = out.cpu()\n",
" self.out = out.detach()\n",
" self.loss = -entropy(out)\n",
" self.loss.backward()\n",
" return self.loss\n",
" closure = Closure()\n",
" optimizer.step(closure)\n",
" if (i+1)%100 == 0:\n",
" clear_output(wait=True)\n",
" out = closure.out\n",
" loss = closure.loss\n",
" print(f\"Step {i+1}, entropy: {-loss.item():.2f} < max {max_entropy:.2f}\")\n",
" print(\"Top 5 predictions:\")\n",
" top_5(out, prefix=\" \")\n",
" show_tensor(im)"
]
},
{
"cell_type": "code",
"execution_count": 34,
"id": "varied-postcard",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<BarContainer object of 1000 artists>"
]
},
"execution_count": 34,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"px = torch.exp(out).squeeze().numpy()\n",
"plt.bar(np.arange(len(px)), px)"
]
}
],
"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.8.8"
}
},
"nbformat": 4,
"nbformat_minor": 5
}
View raw

(Sorry about that, but we can’t show files that are this big right now.)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment