{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": false }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "Using TensorFlow backend.\n" ] } ], "source": [ "import numpy as np\n", "from keras.models import Model\n", "from keras.layers import Input\n", "from keras.layers.pooling import GlobalMaxPooling1D\n", "from keras import backend as K" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": true }, "outputs": [], "source": [ "def format_decimal(arr, places=6):\n", " return [round(x * 10**places) / 10**places for x in arr]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### GlobalMaxPooling1D" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**[pooling.GlobalMaxPooling1D.0] input 6x6**" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "in shape: (6, 6)\n", "in: [-0.806777, -0.564841, -0.481331, 0.559626, 0.274958, -0.659222, -0.178541, 0.689453, -0.028873, 0.053859, -0.446394, -0.53406, 0.776897, -0.700858, -0.802179, -0.616515, 0.718677, 0.303042, -0.080606, -0.850593, -0.795971, 0.860487, -0.90685, 0.89858, 0.617251, 0.334305, -0.351137, -0.642574, 0.108974, -0.993964, 0.051085, -0.372012, 0.843766, 0.088025, -0.598662, 0.789035]\n", "out shape: (6,)\n", "out: [0.776897, 0.689453, 0.843766, 0.860487, 0.718677, 0.89858]\n" ] } ], "source": [ "data_in_shape = (6, 6)\n", "L = GlobalMaxPooling1D()\n", "\n", "layer_0 = Input(shape=data_in_shape)\n", "layer_1 = L(layer_0)\n", "model = Model(input=layer_0, output=layer_1)\n", "\n", "# set weights to random (use seed for reproducibility)\n", "np.random.seed(260)\n", "data_in = 2 * np.random.random(data_in_shape) - 1\n", "print('')\n", "print('in shape:', data_in_shape)\n", "print('in:', format_decimal(data_in.ravel().tolist()))\n", "result = model.predict(np.array([data_in]))\n", "print('out shape:', result[0].shape)\n", "print('out:', format_decimal(result[0].ravel().tolist()))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**[pooling.GlobalMaxPooling1D.1] input 3x7**" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "in shape: (3, 7)\n", "in: [0.601872, -0.028379, 0.654213, 0.217731, -0.864161, 0.422013, 0.888312, -0.714141, -0.184753, 0.224845, -0.221123, -0.847943, -0.511334, -0.871723, -0.597589, -0.889034, -0.544887, -0.004798, 0.406639, -0.35285, 0.648562]\n", "out shape: (7,)\n", "out: [0.601872, -0.028379, 0.654213, 0.217731, 0.406639, 0.422013, 0.888312]\n" ] } ], "source": [ "data_in_shape = (3, 7)\n", "L = GlobalMaxPooling1D()\n", "\n", "layer_0 = Input(shape=data_in_shape)\n", "layer_1 = L(layer_0)\n", "model = Model(input=layer_0, output=layer_1)\n", "\n", "# set weights to random (use seed for reproducibility)\n", "np.random.seed(261)\n", "data_in = 2 * np.random.random(data_in_shape) - 1\n", "print('')\n", "print('in shape:', data_in_shape)\n", "print('in:', format_decimal(data_in.ravel().tolist()))\n", "result = model.predict(np.array([data_in]))\n", "print('out shape:', result[0].shape)\n", "print('out:', format_decimal(result[0].ravel().tolist()))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**[pooling.GlobalMaxPooling1D.2] input 8x4**" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "in shape: (8, 4)\n", "in: [-0.215694, 0.441215, 0.116911, 0.53299, 0.883562, -0.535525, -0.869764, -0.596287, 0.576428, -0.689083, -0.132924, -0.129935, -0.17672, -0.29097, 0.590914, 0.992098, 0.908965, -0.170202, 0.640203, 0.178644, 0.866749, -0.545566, -0.827072, 0.420342, -0.076191, 0.207686, -0.908472, -0.795307, -0.948319, 0.683682, -0.563278, -0.82135]\n", "out shape: (4,)\n", "out: [0.908965, 0.683682, 0.640203, 0.992098]\n" ] } ], "source": [ "data_in_shape = (8, 4)\n", "L = GlobalMaxPooling1D()\n", "\n", "layer_0 = Input(shape=data_in_shape)\n", "layer_1 = L(layer_0)\n", "model = Model(input=layer_0, output=layer_1)\n", "\n", "# set weights to random (use seed for reproducibility)\n", "np.random.seed(262)\n", "data_in = 2 * np.random.random(data_in_shape) - 1\n", "print('')\n", "print('in shape:', data_in_shape)\n", "print('in:', format_decimal(data_in.ravel().tolist()))\n", "result = model.predict(np.array([data_in]))\n", "print('out shape:', result[0].shape)\n", "print('out:', format_decimal(result[0].ravel().tolist()))" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] } ], "metadata": { "anaconda-cloud": {}, "kernelspec": { "display_name": "Python [default]", "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.5.2" } }, "nbformat": 4, "nbformat_minor": 0 }