{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": false, "scrolled": false }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "Using TensorFlow backend.\n", "/home/jhoward/anaconda3/lib/python3.5/site-packages/sklearn/cross_validation.py:44: DeprecationWarning: This module was deprecated in version 0.18 in favor of the model_selection module into which all the refactored classes and functions are moved. Also note that the interface of the new CV iterators are different from that of this module. This module will be removed in 0.20.\n", " \"This module will be removed in 0.20.\", DeprecationWarning)\n" ] } ], "source": [ "%matplotlib inline\n", "import importlib\n", "import utils2; importlib.reload(utils2)\n", "from utils2 import *" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": true }, "outputs": [], "source": [ "cfg = tf.ConfigProto()\n", "cfg.gpu_options.allow_growth = True\n", "sess = tf.Session(config=cfg)" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "9.0\n" ] } ], "source": [ "a = tf.placeholder(\"float\")\n", "b = tf.placeholder(\"float\")\n", "y = tf.multiply(a, b)\n", "\n", "print (sess.run(y, feed_dict={a: 3, b: 3}))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Simple regression" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": false }, "outputs": [], "source": [ "num_points = 1000\n", "x_data= np.random.normal(0.0, 0.55, (num_points,))\n", "y_data= x_data * 0.1 + 0.3 + np.random.normal(0.0, 0.03, (num_points,))" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nAbaK8GfeKAAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.scatter(x_data, y_data);" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": false }, "outputs": [], "source": [ "loss = tf.reduce_mean(tf.square(y - y_data))\n", "optimizer = tf.train.GradientDescentOptimizer(0.5)\n", "train = optimizer.minimize(loss)" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "collapsed": true }, "outputs": [], "source": [ "init = tf.global_variables_initializer()" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "collapsed": false }, "outputs": [], "source": [ "sess = tf.InteractiveSession(config=cfg)" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "0 [ 0.48098135] [ 0.30073947]\n", "1 [ 0.36553362] [ 0.30032972]\n", "2 [ 0.28506982] [ 0.30004594]\n", "3 [ 0.22898886] [ 0.29984814]\n", "4 [ 0.18990201] [ 0.2997103]\n", "5 [ 0.16265959] [ 0.29961422]\n", "6 [ 0.14367238] [ 0.29954726]\n", "7 [ 0.13043883] [ 0.29950058]\n" ] } ], "source": [ "init.run()\n", "for step in range(8):\n", " train.run()\n", " print (step, W.eval(), b.eval())" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "collapsed": false, "scrolled": true }, "outputs": [ { "data": { "image/png": "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\nAElFTkSuQmCC\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.scatter(x_data, y_data)\n", "plt.plot(x_data, W.eval() * x_data + b.eval());" ] }, { "cell_type": "markdown", "metadata": { "heading_collapsed": true }, "source": [ "## Variable scope" ] }, { "cell_type": "code", "execution_count": 18, "metadata": { "collapsed": true, "hidden": true }, "outputs": [], "source": [ "tf.reset_default_graph()" ] }, { "cell_type": "code", "execution_count": 19, "metadata": { "collapsed": false, "hidden": true }, "outputs": [ { "data": { "text/plain": [ "'foo/v:0'" ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ "with tf.variable_scope(\"foo\"):\n", " v = tf.get_variable(\"v\", [2,3])\n", "v.name" ] }, { "cell_type": "code", "execution_count": 20, "metadata": { "collapsed": false, "hidden": true }, "outputs": [ { "data": { "text/plain": [ "TensorShape([Dimension(2), Dimension(3)])" ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" } ], "source": [ "v.get_shape()" ] }, { "cell_type": "code", "execution_count": 21, "metadata": { "collapsed": false, "hidden": true }, "outputs": [], "source": [ "with tf.variable_scope(\"foo\", reuse=True):\n", " v1 = tf.get_variable(\"v\", [2,3])" ] }, { "cell_type": "code", "execution_count": 22, "metadata": { "collapsed": false, "hidden": true }, "outputs": [ { "data": { "text/plain": [ "True" ] }, "execution_count": 22, "metadata": {}, "output_type": "execute_result" } ], "source": [ "v1==v" ] }, { "cell_type": "code", "execution_count": 23, "metadata": { "collapsed": true, "hidden": true }, "outputs": [], "source": [ "v2 = tf.get_variable(\"v2\", [1])" ] }, { "cell_type": "code", "execution_count": 24, "metadata": { "collapsed": false, "hidden": true }, "outputs": [ { "data": { "text/plain": [ "'v2:0'" ] }, "execution_count": 24, "metadata": {}, "output_type": "execute_result" } ], "source": [ "v2.name" ] }, { "cell_type": "markdown", "metadata": { "heading_collapsed": true }, "source": [ "## K-means clustering" ] }, { "cell_type": "code", "execution_count": 25, "metadata": { "collapsed": false, "hidden": true }, "outputs": [], "source": [ "def plot_data(data, centroids):\n", " colour = plt.cm.rainbow(np.linspace(0,1,len(centroids)))\n", " for i, centroid in enumerate(centroids):\n", " samples = data[i*n_samples:(i+1)*n_samples]\n", " plt.scatter(samples[:,0], samples[:,1], c=colour[i])\n", " plt.plot(centroid[0], centroid[1], markersize=15, marker=\"x\", color='k', mew=10)\n", " plt.plot(centroid[0], centroid[1], markersize=10, marker=\"x\", color='m', mew=5)\n", " plt.show()" ] }, { "cell_type": "code", "execution_count": 26, "metadata": { "collapsed": false, "hidden": true }, "outputs": [], "source": [ "n_clusters=10\n", "n_samples =250\n", "centroids = np.random.uniform(-35, 35, (n_clusters, 2))\n", "slices = [np.random.multivariate_normal(centroids[i], np.diag([5., 5.]), n_samples)\n", " for i in range(n_clusters)]\n", "data = np.concatenate(slices).astype(np.float32)" ] }, { "cell_type": "code", "execution_count": 27, "metadata": { "collapsed": false, "hidden": true }, "outputs": [ { "data": { "image/png": "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\nRK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plot_data(data, centroids)" ] }, { "cell_type": "code", "execution_count": 28, "metadata": { "collapsed": false, "hidden": true }, "outputs": [], "source": [ "# Numpy Version\n", "def find_initial_centroids_numpy(data, k):\n", " r_index = np.random.randint(data.shape[0])\n", " r = data[r_index, :][np.newaxis]\n", " initial_centroids = []\n", " for i in range(k):\n", " diff = data - np.expand_dims(r,1)\n", " dist = np.linalg.norm(diff, axis=2) # 100x2 5x2 --> 100x5x2 --> 100x5\n", " farthest_index = np.argmax(np.min(dist, axis=0))\n", " farthest_point = data[farthest_index]\n", " initial_centroids.append(farthest_point)\n", " r = np.array(initial_centroids)\n", " return r" ] }, { "cell_type": "code", "execution_count": 29, "metadata": { "collapsed": false, "hidden": true }, "outputs": [], "source": [ "def find_initial_centroids(data, k):\n", " r_index = tf.random_uniform([1], 0, tf.shape(data)[0], dtype=tf.int32)\n", " r = tf.expand_dims(data[tf.squeeze(r_index)], dim=1)\n", " initial_centroids = []\n", " for i in range(k):\n", " diff = tf.squared_difference(tf.expand_dims(data, 0), tf.expand_dims(r,1))\n", " dist = tf.reduce_sum(diff, axis=2)\n", " farthest_index = tf.argmax(tf.reduce_min(dist, axis=0), 0)\n", " farthest_point = data[tf.to_int32(farthest_index)]\n", " initial_centroids.append(farthest_point)\n", " r = tf.pack(initial_centroids)\n", " return r" ] }, { "cell_type": "code", "execution_count": 30, "metadata": { "collapsed": false, "hidden": true }, "outputs": [], "source": [ "samples = tf.placeholder(tf.float32, (None, None))" ] }, { "cell_type": "code", "execution_count": 31, "metadata": { "collapsed": false, "hidden": true }, "outputs": [ { "ename": "ValueError", "evalue": "Cannot use the default session to evaluate tensor: the tensor's graph is different from the session's graph. Pass an explicit session to `eval(session=sess)`.", "output_type": "error", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[0;31mValueError\u001b[0m Traceback (most recent call last)", "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0minitial_centroids\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mfind_initial_centroids\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0msamples\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mn_clusters\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0meval\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m{\u001b[0m\u001b[0msamples\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mdata\u001b[0m\u001b[0;34m}\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", "\u001b[0;32m/home/jhoward/anaconda3/lib/python3.5/site-packages/tensorflow/python/framework/ops.py\u001b[0m in \u001b[0;36meval\u001b[0;34m(self, feed_dict, session)\u001b[0m\n\u001b[1;32m 573\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 574\u001b[0m \"\"\"\n\u001b[0;32m--> 575\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0m_eval_using_default_session\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfeed_dict\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mgraph\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0msession\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 576\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 577\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/home/jhoward/anaconda3/lib/python3.5/site-packages/tensorflow/python/framework/ops.py\u001b[0m in \u001b[0;36m_eval_using_default_session\u001b[0;34m(tensors, feed_dict, graph, session)\u001b[0m\n\u001b[1;32m 3622\u001b[0m \"`eval(session=sess)`\")\n\u001b[1;32m 3623\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0msession\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mgraph\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0mgraph\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 3624\u001b[0;31m raise ValueError(\"Cannot use the default session to evaluate tensor: \"\n\u001b[0m\u001b[1;32m 3625\u001b[0m \u001b[0;34m\"the tensor's graph is different from the session's \"\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3626\u001b[0m \u001b[0;34m\"graph. Pass an explicit session to \"\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;31mValueError\u001b[0m: Cannot use the default session to evaluate tensor: the tensor's graph is different from the session's graph. Pass an explicit session to `eval(session=sess)`." ] } ], "source": [ "initial_centroids = find_initial_centroids(samples, n_clusters).eval({samples: data})" ] }, { "cell_type": "code", "execution_count": 32, "metadata": { "collapsed": false, "hidden": true }, "outputs": [], "source": [ "def choose_random_centroids(samples, n_clusters):\n", " n_samples = tf.shape(samples)[0]\n", " random_indices = tf.random_shuffle(tf.range(0, n_samples))\n", " centroid_indices = random_indices[:n_clusters]\n", " return tf.gather(samples, centroid_indices)" ] }, { "cell_type": "code", "execution_count": 33, "metadata": { "collapsed": false, "hidden": true }, "outputs": [], "source": [ "initial_centroids = find_initial_centroids_numpy(data, n_clusters)" ] }, { "cell_type": "code", "execution_count": 756, "metadata": { "collapsed": false, "hidden": true }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plot_data(data, initial_centroids)" ] }, { "cell_type": "code", "execution_count": 763, "metadata": { "collapsed": true, "hidden": true }, "outputs": [], "source": [ "def assign_to_nearest(samples, centroids):\n", " dim_dists = tf.squared_difference(tf.expand_dims(samples, 0), tf.expand_dims(centroids, 1))\n", " return tf.argmin(tf.reduce_sum(dim_dists , 2), 0)" ] }, { "cell_type": "code", "execution_count": 764, "metadata": { "collapsed": true, "hidden": true }, "outputs": [], "source": [ "def update_centroids(samples, nearest_indices, n_clusters):\n", " partitions = tf.dynamic_partition(samples, tf.to_int32(nearest_indices), n_clusters)\n", " return tf.concat(0, [tf.expand_dims(tf.reduce_mean(partition, 0), 0) \n", " for partition in partitions])" ] }, { "cell_type": "code", "execution_count": 772, "metadata": { "collapsed": false, "hidden": true }, "outputs": [], "source": [ "initial_centroids = choose_random_centroids(samples, n_clusters).eval({samples: data})" ] }, { "cell_type": "code", "execution_count": 773, "metadata": { "collapsed": false, "hidden": true }, "outputs": [], "source": [ "curr_centroids = tf.Variable(initial_centroids)" ] }, { "cell_type": "code", "execution_count": 774, "metadata": { "collapsed": false, "hidden": true }, "outputs": [], "source": [ "nearest_indices = assign_to_nearest(samples, curr_centroids)\n", "updated_centroids = update_centroids(samples, nearest_indices, n_clusters)" ] }, { "cell_type": "code", "execution_count": 775, "metadata": { "collapsed": true, "hidden": true }, "outputs": [], "source": [ "tf.global_variables_initializer().run()" ] }, { "cell_type": "code", "execution_count": 776, "metadata": { "collapsed": false, "hidden": true, "scrolled": true }, "outputs": [], "source": [ "c = initial_centroids\n", "for i in range(10):\n", " #TODO animate\n", " c2 = curr_centroids.assign(updated_centroids).eval({samples: data})\n", " if np.allclose(c,c2):\n", " break\n", " c=c2" ] }, { "cell_type": "code", "execution_count": 777, "metadata": { "collapsed": false, "hidden": true }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plot_data(data, curr_centroids.eval())" ] }, { "cell_type": "markdown", "metadata": { "heading_collapsed": true }, "source": [ "## Tf->Keras LR (not working)" ] }, { "cell_type": "code", "execution_count": 38, "metadata": { "collapsed": true, "hidden": true }, "outputs": [], "source": [ "class LinRegr(Layer):\n", " def __init__(self, **kwargs):\n", " super(LinRegr, self).__init__(**kwargs)\n", "\n", " def build(self, input_shape):\n", " input_dims = input_shape[1:]\n", " self.W = tf.Variable(tf.random_uniform([1], -1.0, 1.0))\n", " self.b = tf.Variable(tf.zeros([1]))\n", " self.built = True\n", "\n", " def call(self, x, mask=None):\n", " return self.W * x + self.b\n", " \n", " def get_output_shape_for(self, input_shape):\n", " return input_shape" ] }, { "cell_type": "code", "execution_count": 39, "metadata": { "collapsed": false, "hidden": true }, "outputs": [], "source": [ "inp = Input((1,))\n", "res = LinRegr()(inp)" ] }, { "cell_type": "code", "execution_count": 33, "metadata": { "collapsed": false, "hidden": true }, "outputs": [], "source": [ "model = Model(inp, res)" ] }, { "cell_type": "code", "execution_count": 34, "metadata": { "collapsed": true, "hidden": true }, "outputs": [], "source": [ "model.compile('adam', 'mse')" ] }, { "cell_type": "code", "execution_count": 35, "metadata": { "collapsed": false, "hidden": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Epoch 1/10\n", "0s - loss: 0.3151\n", "Epoch 2/10\n", "0s - loss: 0.3151\n", "Epoch 3/10\n", "0s - loss: 0.3151\n", "Epoch 4/10\n", "0s - loss: 0.3151\n", "Epoch 5/10\n", "0s - loss: 0.3151\n", "Epoch 6/10\n", "0s - loss: 0.3151\n", "Epoch 7/10\n", "0s - loss: 0.3151\n", "Epoch 8/10\n", "0s - loss: 0.3151\n", "Epoch 9/10\n", "0s - loss: 0.3151\n", "Epoch 10/10\n", "0s - loss: 0.3151\n" ] }, { "data": { "text/plain": [ "" ] }, "execution_count": 35, "metadata": {}, "output_type": "execute_result" } ], "source": [ "model.fit(x_data, y_data, verbose=2)" ] } ], "metadata": { "anaconda-cloud": {}, "kernelspec": { "display_name": "Python [conda root]", "language": "python", "name": "conda-root-py" }, "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": 2 }