Skip to content

Instantly share code, notes, and snippets.

@Immiora
Last active January 28, 2018 19:03
Show Gist options
  • Save Immiora/1488b8efefe49d7b0a695c0ae7dca197 to your computer and use it in GitHub Desktop.
Save Immiora/1488b8efefe49d7b0a695c0ae7dca197 to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h2>CNN with global average pooling</h2>\n",
"\n",
"Trained on mnist\n",
"\n",
"Original: http://cnnlocalization.csail.mit.edu/Zhou_Learning_Deep_Features_CVPR_2016_paper.pdf"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"import chainer\n",
"import chainer.links as L\n",
"import chainer.functions as F\n",
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"import scipy.ndimage\n",
"\n",
"%matplotlib inline"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"# define CNN architecture\n",
"\n",
"class Block(chainer.ChainList):\n",
" def __init__(self, n_filters, ksize, xdim, ydim):\n",
" links = []\n",
" links.append(L.Convolution2D(in_channels=None, out_channels=n_filters, ksize=ksize, pad=map(lambda x: (x-1)/2, ksize)))\n",
" links.append(L.BatchNormalization(size=n_filters))\n",
" super(Block, self).__init__(*links)\n",
"\n",
" def __call__(self, z, test):\n",
" for link in self:\n",
" z = link(z, test) if hasattr(link, 'avg_mean') else F.relu(link(z))\n",
" return z\n",
"\n",
"class CNN(chainer.ChainList):\n",
" def __init__(self, n_filters, ksize, xdim, ydim, depth, n_output):\n",
" links = []\n",
" [links.append(Block(n_filters, ksize, xdim, ydim)) for l in range(depth)]\n",
" links.append(L.Linear(None, n_output))\n",
" super(CNN, self).__init__(*links)\n",
"\n",
" def __call__(self, x, test):\n",
" for link in self[:-1]:\n",
" x = link(x, test)\n",
" print(x.shape)\n",
" x = F.max_pooling_2d(x, ksize=3, stride=2, pad=1)\n",
" z = F.average_pooling_2d(x, ksize=x.shape[2:], stride=1)\n",
" z = F.reshape(z, x.shape[:2])\n",
" y = self[-1](z)\n",
" return y"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"# get mnist dataset\n",
"train, test = chainer.datasets.get_mnist()\n",
"train_x, train_t = [np.array(i) for i in zip(*train)]\n",
"test_x, test_t = [np.array(i) for i in zip(*test)]\n",
"\n",
"train_x = np.expand_dims(train_x.reshape((-1, 28, 28)), axis=1)\n",
"test_x = np.expand_dims(test_x.reshape((-1, 28, 28)), axis=1)"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"# initialize CNN and optimizer\n",
"net = CNN(n_filters=128, ksize=(3, 3), xdim=28, ydim=28, depth=3, n_output=10)\n",
"optim = chainer.optimizers.Adam(alpha=1e-04)\n",
"optim.setup(net)"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"(100L, 128L, 28L, 28L)\n",
"(100L, 128L, 15L, 15L)\n",
"(100L, 128L, 8L, 8L)\n",
"0.0799999982119\n"
]
}
],
"source": [
"# run train loop\n",
"batch_size = 100\n",
"for epoch in range(1):\n",
" i_ = np.random.choice(len(train_x), batch_size, replace=False)\n",
" y = net(train_x[i_], test=False)\n",
" loss = F.softmax_cross_entropy(y, train_t[i_])\n",
" net.cleargrads()\n",
" loss.backward()\n",
" optim.update()\n",
" print('Epoch ' + str(epoch) + ': train accuracy = ' + str(round(F.accuracy(y, train_t[i_]).data), 4))"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"(1L, 60000L, 28L, 28L)"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# calculate test accuracy\n",
"y = net(test_x, test=False)\n",
"print('Test accuracy: ' + str(round(F.accuracy(y, test_t).data), 4))"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"def get_prediction(x):\n",
" '''Get CNN prediction given input x'''\n",
" \n",
" y = net(x, test=True)\n",
" return int(F.argmax(F.softmax(y)).data)\n",
"\n",
"def get_class_activation_map(x, c):\n",
" '''Get activation map for class c based on input x'''\n",
" \n",
" y = net(x, test=True)\n",
" \n",
" z = F.max_pooling_2d(net[0](x, test=True), ksize=3, stride=2, pad=1)\n",
" for link in net[1:-1]:\n",
" z = F.max_pooling_2d(link(z, test=True), ksize=3, stride=2, pad=1)\n",
" \n",
" z = scipy.ndimage.zoom(z.data.squeeze(), (1, 4, 4), order=1)\n",
" w = net[-1].W[c,:]\n",
" M = z.reshape((128, -1)).T.dot(w.data).reshape((20, 20))\n",
" \n",
" return M"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"(1L, 128L, 28L, 28L)\n",
"(1L, 128L, 15L, 15L)\n",
"(1L, 128L, 8L, 8L)\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x4c86c128>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# get prediction, activation map and plot\n",
"ind = np.random.randint(0, 5000)\n",
"x = test_x[None, ind]\n",
"c = get_prediction(x)\n",
"M = get_class_activation_map(x, y)\n",
"\n",
"plt.figure()\n",
"plt.subplot(121)\n",
"plt.imshow(x.squeeze())\n",
"plt.title('Actual: ' + str(test_t[ind]) + ', pred: ' + str(c))\n",
"plt.subplot(122)\n",
"plt.imshow(M)\n",
"plt.title('Activation map for class ' + str(c));"
]
}
],
"metadata": {
"anaconda-cloud": {},
"kernelspec": {
"display_name": "Python [conda root]",
"language": "python",
"name": "conda-root-py"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 2
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython2",
"version": "2.7.10"
}
},
"nbformat": 4,
"nbformat_minor": 1
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment