├── LICENSE ├── README.md ├── center_loss.py ├── imgs ├── with_center_loss.png └── without_center_loss.png └── mnist_sample_code ├── mnist_with_center_loss.ipynb └── mnist_without_center_loss.ipynb /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2017 Su Tang 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # TensorFlow_Center_Loss 2 | Center Loss implementation with TensorFlow. 3 | 4 | This implementation is highly inspired by [Facenet](https://github.com/davidsandberg/facenet/blob/master/src/facenet.py#L76-L88). ~~And the sample code will be uploaded soon.~~ The sample code has been uploaded. 5 | 6 | mnist, **softmax loss+center loss**: 7 | 8 | ![](./imgs/with_center_loss.png) 9 | 10 | mnist, **softmax loss only**: 11 | 12 | ![](./imgs/without_center_loss.png) 13 | 14 | ## Reference 15 | 16 | 1. [A Discriminative Feature Learning Approach for Deep Face Recognition](https://link.springer.com/chapter/10.1007/978-3-319-46478-7_31) 17 | 2. [Facenet](https://github.com/davidsandberg/facenet/blob/master/src/facenet.py#L76-L88) -------------------------------------------------------------------------------- /center_loss.py: -------------------------------------------------------------------------------- 1 | # coding: utf-8 2 | 3 | import tensorflow as tf 4 | 5 | def get_center_loss(features, labels, alpha, num_classes): 6 | """获取center loss及center的更新op 7 | 8 | Arguments: 9 | features: Tensor,表征样本特征,一般使用某个fc层的输出,shape应该为[batch_size, feature_length]. 10 | labels: Tensor,表征样本label,非one-hot编码,shape应为[batch_size]. 11 | alpha: 0-1之间的数字,控制样本类别中心的学习率,细节参考原文. 12 | num_classes: 整数,表明总共有多少个类别,网络分类输出有多少个神经元这里就取多少. 13 | 14 | Return: 15 | loss: Tensor,可与softmax loss相加作为总的loss进行优化. 16 | centers: Tensor,存储样本中心值的Tensor,仅查看样本中心存储的具体数值时有用. 17 | centers_update_op: op,用于更新样本中心的op,在训练时需要同时运行该op,否则样本中心不会更新 18 | """ 19 | # 获取特征的维数,例如256维 20 | len_features = features.get_shape()[1] 21 | # 建立一个Variable,shape为[num_classes, len_features],用于存储整个网络的样本中心, 22 | # 设置trainable=False是因为样本中心不是由梯度进行更新的 23 | centers = tf.get_variable('centers', [num_classes, len_features], dtype=tf.float32, 24 | initializer=tf.constant_initializer(0), trainable=False) 25 | # 将label展开为一维的,输入如果已经是一维的,则该动作其实无必要 26 | labels = tf.reshape(labels, [-1]) 27 | 28 | # 根据样本label,获取mini-batch中每一个样本对应的中心值 29 | centers_batch = tf.gather(centers, labels) 30 | # 计算loss 31 | loss = tf.nn.l2_loss(features - centers_batch) 32 | 33 | # 当前mini-batch的特征值与它们对应的中心值之间的差 34 | diff = centers_batch - features 35 | 36 | # 获取mini-batch中同一类别样本出现的次数,了解原理请参考原文公式(4) 37 | unique_label, unique_idx, unique_count = tf.unique_with_counts(labels) 38 | appear_times = tf.gather(unique_count, unique_idx) 39 | appear_times = tf.reshape(appear_times, [-1, 1]) 40 | 41 | diff = diff / tf.cast((1 + appear_times), tf.float32) 42 | diff = alpha * diff 43 | 44 | centers_update_op = tf.scatter_sub(centers, labels, diff) 45 | 46 | return loss, centers, centers_update_op 47 | -------------------------------------------------------------------------------- /imgs/with_center_loss.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EncodeTS/TensorFlow_Center_Loss/a5c1ad76b77248d7c910334e54c36bc6bd20dbcd/imgs/with_center_loss.png -------------------------------------------------------------------------------- /imgs/without_center_loss.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EncodeTS/TensorFlow_Center_Loss/a5c1ad76b77248d7c910334e54c36bc6bd20dbcd/imgs/without_center_loss.png -------------------------------------------------------------------------------- /mnist_sample_code/mnist_with_center_loss.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "markdown", 5 | "metadata": { 6 | "deletable": true, 7 | "editable": true 8 | }, 9 | "source": [ 10 | "## Parameters" 11 | ] 12 | }, 13 | { 14 | "cell_type": "code", 15 | "execution_count": 1, 16 | "metadata": { 17 | "ExecuteTime": { 18 | "end_time": "2017-04-23T12:58:05.100181", 19 | "start_time": "2017-04-23T12:58:05.098147" 20 | }, 21 | "collapsed": true, 22 | "deletable": true, 23 | "editable": true 24 | }, 25 | "outputs": [], 26 | "source": [ 27 | "LAMBDA = 0.5\n", 28 | "CENTER_LOSS_ALPHA = 0.5\n", 29 | "NUM_CLASSES = 10" 30 | ] 31 | }, 32 | { 33 | "cell_type": "markdown", 34 | "metadata": { 35 | "deletable": true, 36 | "editable": true 37 | }, 38 | "source": [ 39 | "## Import modules" 40 | ] 41 | }, 42 | { 43 | "cell_type": "code", 44 | "execution_count": 2, 45 | "metadata": { 46 | "ExecuteTime": { 47 | "end_time": "2017-04-23T12:58:06.723861", 48 | "start_time": "2017-04-23T12:58:05.101724" 49 | }, 50 | "collapsed": false, 51 | "deletable": true, 52 | "editable": true 53 | }, 54 | "outputs": [], 55 | "source": [ 56 | "import os\n", 57 | "import numpy as np\n", 58 | "import tensorflow as tf\n", 59 | "import tflearn\n", 60 | "from tensorflow.examples.tutorials.mnist import input_data\n", 61 | "\n", 62 | "slim = tf.contrib.slim\n", 63 | "os.environ['CUDA_VISIBLE_DEVICES'] = '0'" 64 | ] 65 | }, 66 | { 67 | "cell_type": "markdown", 68 | "metadata": { 69 | "deletable": true, 70 | "editable": true 71 | }, 72 | "source": [ 73 | "## Construct network" 74 | ] 75 | }, 76 | { 77 | "cell_type": "code", 78 | "execution_count": 3, 79 | "metadata": { 80 | "ExecuteTime": { 81 | "end_time": "2017-04-23T12:58:06.729925", 82 | "start_time": "2017-04-23T12:58:06.724981" 83 | }, 84 | "collapsed": true, 85 | "deletable": true, 86 | "editable": true 87 | }, 88 | "outputs": [], 89 | "source": [ 90 | "with tf.name_scope('input'):\n", 91 | " input_images = tf.placeholder(tf.float32, shape=(None,28,28,1), name='input_images')\n", 92 | " labels = tf.placeholder(tf.int64, shape=(None), name='labels')\n", 93 | " \n", 94 | "global_step = tf.Variable(0, trainable=False, name='global_step')" 95 | ] 96 | }, 97 | { 98 | "cell_type": "code", 99 | "execution_count": 4, 100 | "metadata": { 101 | "ExecuteTime": { 102 | "end_time": "2017-04-23T12:58:06.803814", 103 | "start_time": "2017-04-23T12:58:06.730853" 104 | }, 105 | "code_folding": [], 106 | "collapsed": true, 107 | "deletable": true, 108 | "editable": true 109 | }, 110 | "outputs": [], 111 | "source": [ 112 | "def get_center_loss(features, labels, alpha, num_classes):\n", 113 | " \"\"\"获取center loss及center的更新op\n", 114 | " \n", 115 | " Arguments:\n", 116 | " features: Tensor,表征样本特征,一般使用某个fc层的输出,shape应该为[batch_size, feature_length].\n", 117 | " labels: Tensor,表征样本label,非one-hot编码,shape应为[batch_size].\n", 118 | " alpha: 0-1之间的数字,控制样本类别中心的学习率,细节参考原文.\n", 119 | " num_classes: 整数,表明总共有多少个类别,网络分类输出有多少个神经元这里就取多少.\n", 120 | " \n", 121 | " Return:\n", 122 | " loss: Tensor,可与softmax loss相加作为总的loss进行优化.\n", 123 | " centers: Tensor,存储样本中心值的Tensor,仅查看样本中心存储的具体数值时有用.\n", 124 | " centers_update_op: op,用于更新样本中心的op,在训练时需要同时运行该op,否则样本中心不会更新\n", 125 | " \"\"\"\n", 126 | " # 获取特征的维数,例如256维\n", 127 | " len_features = features.get_shape()[1]\n", 128 | " # 建立一个Variable,shape为[num_classes, len_features],用于存储整个网络的样本中心,\n", 129 | " # 设置trainable=False是因为样本中心不是由梯度进行更新的\n", 130 | " centers = tf.get_variable('centers', [num_classes, len_features], dtype=tf.float32,\n", 131 | " initializer=tf.constant_initializer(0), trainable=False)\n", 132 | " # 将label展开为一维的,输入如果已经是一维的,则该动作其实无必要\n", 133 | " labels = tf.reshape(labels, [-1])\n", 134 | " \n", 135 | " # 根据样本label,获取mini-batch中每一个样本对应的中心值\n", 136 | " centers_batch = tf.gather(centers, labels)\n", 137 | " # 计算loss\n", 138 | " loss = tf.nn.l2_loss(features - centers_batch)\n", 139 | " \n", 140 | " # 当前mini-batch的特征值与它们对应的中心值之间的差\n", 141 | " diff = centers_batch - features\n", 142 | " \n", 143 | " # 获取mini-batch中同一类别样本出现的次数,了解原理请参考原文公式(4)\n", 144 | " unique_label, unique_idx, unique_count = tf.unique_with_counts(labels)\n", 145 | " appear_times = tf.gather(unique_count, unique_idx)\n", 146 | " appear_times = tf.reshape(appear_times, [-1, 1])\n", 147 | " \n", 148 | " diff = diff / tf.cast((1 + appear_times), tf.float32)\n", 149 | " diff = alpha * diff\n", 150 | " \n", 151 | " centers_update_op = tf.scatter_sub(centers, labels, diff)\n", 152 | " \n", 153 | " return loss, centers, centers_update_op" 154 | ] 155 | }, 156 | { 157 | "cell_type": "code", 158 | "execution_count": 5, 159 | "metadata": { 160 | "ExecuteTime": { 161 | "end_time": "2017-04-23T12:58:06.909774", 162 | "start_time": "2017-04-23T12:58:06.804749" 163 | }, 164 | "code_folding": [], 165 | "collapsed": true, 166 | "deletable": true, 167 | "editable": true 168 | }, 169 | "outputs": [], 170 | "source": [ 171 | "def inference(input_images):\n", 172 | " with slim.arg_scope([slim.conv2d], kernel_size=3, padding='SAME'):\n", 173 | " with slim.arg_scope([slim.max_pool2d], kernel_size=2):\n", 174 | " \n", 175 | " x = slim.conv2d(input_images, num_outputs=32, scope='conv1_1')\n", 176 | " x = slim.conv2d(x, num_outputs=32, scope='conv1_2')\n", 177 | " x = slim.max_pool2d(x, scope='pool1')\n", 178 | " \n", 179 | " x = slim.conv2d(x, num_outputs=64, scope='conv2_1')\n", 180 | " x = slim.conv2d(x, num_outputs=64, scope='conv2_2')\n", 181 | " x = slim.max_pool2d(x, scope='pool2')\n", 182 | " \n", 183 | " x = slim.conv2d(x, num_outputs=128, scope='conv3_1')\n", 184 | " x = slim.conv2d(x, num_outputs=128, scope='conv3_2')\n", 185 | " x = slim.max_pool2d(x, scope='pool3')\n", 186 | " \n", 187 | " x = slim.flatten(x, scope='flatten')\n", 188 | " \n", 189 | " feature = slim.fully_connected(x, num_outputs=2, activation_fn=None, scope='fc1')\n", 190 | " \n", 191 | " x = tflearn.prelu(feature)\n", 192 | "\n", 193 | " x = slim.fully_connected(x, num_outputs=10, activation_fn=None, scope='fc2')\n", 194 | " \n", 195 | " return x, feature" 196 | ] 197 | }, 198 | { 199 | "cell_type": "code", 200 | "execution_count": 6, 201 | "metadata": { 202 | "ExecuteTime": { 203 | "end_time": "2017-04-23T12:58:07.002232", 204 | "start_time": "2017-04-23T12:58:06.911010" 205 | }, 206 | "code_folding": [], 207 | "collapsed": true, 208 | "deletable": true, 209 | "editable": true 210 | }, 211 | "outputs": [], 212 | "source": [ 213 | "def build_network(input_images, labels, ratio=0.5):\n", 214 | " logits, features = inference(input_images)\n", 215 | " \n", 216 | " with tf.name_scope('loss'):\n", 217 | " with tf.name_scope('center_loss'):\n", 218 | " center_loss, centers, centers_update_op = get_center_loss(features, labels, CENTER_LOSS_ALPHA, NUM_CLASSES)\n", 219 | " with tf.name_scope('softmax_loss'):\n", 220 | " softmax_loss = tf.reduce_mean(tf.nn.sparse_softmax_cross_entropy_with_logits(labels=labels, logits=logits))\n", 221 | " with tf.name_scope('total_loss'):\n", 222 | " total_loss = softmax_loss + ratio * center_loss\n", 223 | " \n", 224 | " with tf.name_scope('acc'):\n", 225 | " accuracy = tf.reduce_mean(tf.cast(tf.equal(tf.arg_max(logits, 1), labels), tf.float32))\n", 226 | " \n", 227 | " with tf.name_scope('loss/'):\n", 228 | " tf.summary.scalar('CenterLoss', center_loss)\n", 229 | " tf.summary.scalar('SoftmaxLoss', softmax_loss)\n", 230 | " tf.summary.scalar('TotalLoss', total_loss)\n", 231 | " \n", 232 | " return logits, features, total_loss, accuracy, centers_update_op" 233 | ] 234 | }, 235 | { 236 | "cell_type": "code", 237 | "execution_count": 7, 238 | "metadata": { 239 | "ExecuteTime": { 240 | "end_time": "2017-04-23T12:58:07.300662", 241 | "start_time": "2017-04-23T12:58:07.004232" 242 | }, 243 | "collapsed": false, 244 | "deletable": true, 245 | "editable": true 246 | }, 247 | "outputs": [], 248 | "source": [ 249 | "logits, features, total_loss, accuracy, centers_update_op = build_network(input_images, labels, ratio=LAMBDA)" 250 | ] 251 | }, 252 | { 253 | "cell_type": "markdown", 254 | "metadata": { 255 | "deletable": true, 256 | "editable": true 257 | }, 258 | "source": [ 259 | "## Prepare data" 260 | ] 261 | }, 262 | { 263 | "cell_type": "code", 264 | "execution_count": 8, 265 | "metadata": { 266 | "ExecuteTime": { 267 | "end_time": "2017-04-23T12:58:07.630486", 268 | "start_time": "2017-04-23T12:58:07.301877" 269 | }, 270 | "collapsed": false, 271 | "deletable": true, 272 | "editable": true 273 | }, 274 | "outputs": [ 275 | { 276 | "name": "stdout", 277 | "output_type": "stream", 278 | "text": [ 279 | "Extracting /tmp/mnist/train-images-idx3-ubyte.gz\n", 280 | "Extracting /tmp/mnist/train-labels-idx1-ubyte.gz\n", 281 | "Extracting /tmp/mnist/t10k-images-idx3-ubyte.gz\n", 282 | "Extracting /tmp/mnist/t10k-labels-idx1-ubyte.gz\n" 283 | ] 284 | } 285 | ], 286 | "source": [ 287 | "mnist = input_data.read_data_sets('/tmp/mnist', reshape=False)" 288 | ] 289 | }, 290 | { 291 | "cell_type": "markdown", 292 | "metadata": { 293 | "deletable": true, 294 | "editable": true 295 | }, 296 | "source": [ 297 | "## Optimizer" 298 | ] 299 | }, 300 | { 301 | "cell_type": "code", 302 | "execution_count": 9, 303 | "metadata": { 304 | "ExecuteTime": { 305 | "end_time": "2017-04-23T12:58:07.633505", 306 | "start_time": "2017-04-23T12:58:07.631587" 307 | }, 308 | "collapsed": true, 309 | "deletable": true, 310 | "editable": true 311 | }, 312 | "outputs": [], 313 | "source": [ 314 | "optimizer = tf.train.AdamOptimizer(0.001)" 315 | ] 316 | }, 317 | { 318 | "cell_type": "code", 319 | "execution_count": 10, 320 | "metadata": { 321 | "ExecuteTime": { 322 | "end_time": "2017-04-23T12:58:07.926784", 323 | "start_time": "2017-04-23T12:58:07.634493" 324 | }, 325 | "collapsed": false, 326 | "deletable": true, 327 | "editable": true 328 | }, 329 | "outputs": [], 330 | "source": [ 331 | "with tf.control_dependencies([centers_update_op]):\n", 332 | " train_op = optimizer.minimize(total_loss, global_step=global_step)" 333 | ] 334 | }, 335 | { 336 | "cell_type": "markdown", 337 | "metadata": { 338 | "deletable": true, 339 | "editable": true 340 | }, 341 | "source": [ 342 | "## Session and Summary" 343 | ] 344 | }, 345 | { 346 | "cell_type": "code", 347 | "execution_count": 11, 348 | "metadata": { 349 | "ExecuteTime": { 350 | "end_time": "2017-04-23T12:58:07.929944", 351 | "start_time": "2017-04-23T12:58:07.927740" 352 | }, 353 | "collapsed": false, 354 | "deletable": true, 355 | "editable": true 356 | }, 357 | "outputs": [], 358 | "source": [ 359 | "summary_op = tf.summary.merge_all()" 360 | ] 361 | }, 362 | { 363 | "cell_type": "code", 364 | "execution_count": 12, 365 | "metadata": { 366 | "ExecuteTime": { 367 | "end_time": "2017-04-23T12:58:10.050499", 368 | "start_time": "2017-04-23T12:58:07.930866" 369 | }, 370 | "collapsed": true, 371 | "deletable": true, 372 | "editable": true 373 | }, 374 | "outputs": [], 375 | "source": [ 376 | "sess = tf.Session()\n", 377 | "sess.run(tf.global_variables_initializer())\n", 378 | "writer = tf.summary.FileWriter('/tmp/mnist_log', sess.graph)" 379 | ] 380 | }, 381 | { 382 | "cell_type": "markdown", 383 | "metadata": { 384 | "deletable": true, 385 | "editable": true 386 | }, 387 | "source": [ 388 | "## Train" 389 | ] 390 | }, 391 | { 392 | "cell_type": "code", 393 | "execution_count": 13, 394 | "metadata": { 395 | "ExecuteTime": { 396 | "end_time": "2017-04-23T12:58:10.071755", 397 | "start_time": "2017-04-23T12:58:10.051998" 398 | }, 399 | "collapsed": true, 400 | "deletable": true, 401 | "editable": true 402 | }, 403 | "outputs": [], 404 | "source": [ 405 | "mean_data = np.mean(mnist.train.images, axis=0)" 406 | ] 407 | }, 408 | { 409 | "cell_type": "code", 410 | "execution_count": 14, 411 | "metadata": { 412 | "ExecuteTime": { 413 | "end_time": "2017-04-23T12:59:49.036352", 414 | "start_time": "2017-04-23T12:58:10.073172" 415 | }, 416 | "collapsed": false, 417 | "deletable": true, 418 | "editable": true, 419 | "scrolled": true 420 | }, 421 | "outputs": [ 422 | { 423 | "name": "stdout", 424 | "output_type": "stream", 425 | "text": [ 426 | "step: 200, train_acc:0.1953, vali_acc:0.2084\n", 427 | "step: 400, train_acc:0.3906, vali_acc:0.3874\n", 428 | "step: 600, train_acc:0.4375, vali_acc:0.4092\n", 429 | "step: 800, train_acc:0.4531, vali_acc:0.4144\n", 430 | "step: 1000, train_acc:0.4141, vali_acc:0.4180\n", 431 | "step: 1200, train_acc:0.3516, vali_acc:0.4342\n", 432 | "step: 1400, train_acc:0.5000, vali_acc:0.5458\n", 433 | "step: 1600, train_acc:0.6953, vali_acc:0.6390\n", 434 | "step: 1800, train_acc:0.6953, vali_acc:0.6992\n", 435 | "step: 2000, train_acc:0.7891, vali_acc:0.8246\n", 436 | "step: 2200, train_acc:0.9297, vali_acc:0.9170\n", 437 | "step: 2400, train_acc:0.9766, vali_acc:0.9620\n", 438 | "step: 2600, train_acc:0.9922, vali_acc:0.9792\n", 439 | "step: 2800, train_acc:0.9922, vali_acc:0.9826\n", 440 | "step: 3000, train_acc:0.9922, vali_acc:0.9836\n", 441 | "step: 3200, train_acc:0.9844, vali_acc:0.9822\n", 442 | "step: 3400, train_acc:0.9766, vali_acc:0.9836\n", 443 | "step: 3600, train_acc:0.9766, vali_acc:0.9846\n", 444 | "step: 3800, train_acc:0.9922, vali_acc:0.9868\n", 445 | "step: 4000, train_acc:1.0000, vali_acc:0.9856\n", 446 | "step: 4200, train_acc:1.0000, vali_acc:0.9876\n", 447 | "step: 4400, train_acc:0.9844, vali_acc:0.9882\n", 448 | "step: 4600, train_acc:1.0000, vali_acc:0.9870\n", 449 | "step: 4800, train_acc:1.0000, vali_acc:0.9890\n", 450 | "step: 5000, train_acc:1.0000, vali_acc:0.9876\n", 451 | "step: 5200, train_acc:1.0000, vali_acc:0.9888\n", 452 | "step: 5400, train_acc:1.0000, vali_acc:0.9882\n", 453 | "step: 5600, train_acc:1.0000, vali_acc:0.9884\n", 454 | "step: 5800, train_acc:1.0000, vali_acc:0.9878\n", 455 | "step: 6000, train_acc:1.0000, vali_acc:0.9888\n", 456 | "step: 6200, train_acc:1.0000, vali_acc:0.9882\n", 457 | "step: 6400, train_acc:1.0000, vali_acc:0.9880\n", 458 | "step: 6600, train_acc:0.9922, vali_acc:0.9876\n", 459 | "step: 6800, train_acc:1.0000, vali_acc:0.9890\n", 460 | "step: 7000, train_acc:1.0000, vali_acc:0.9880\n", 461 | "step: 7200, train_acc:1.0000, vali_acc:0.9886\n", 462 | "step: 7400, train_acc:1.0000, vali_acc:0.9886\n", 463 | "step: 7600, train_acc:1.0000, vali_acc:0.9886\n", 464 | "step: 7800, train_acc:1.0000, vali_acc:0.9880\n", 465 | "step: 8000, train_acc:1.0000, vali_acc:0.9888\n" 466 | ] 467 | } 468 | ], 469 | "source": [ 470 | "step = sess.run(global_step)\n", 471 | "while step <= 8000:\n", 472 | " batch_images, batch_labels = mnist.train.next_batch(128)\n", 473 | " _, summary_str, train_acc = sess.run(\n", 474 | " [train_op, summary_op, accuracy],\n", 475 | " feed_dict={\n", 476 | " input_images: batch_images - mean_data,\n", 477 | " labels: batch_labels,\n", 478 | " })\n", 479 | " step += 1\n", 480 | " \n", 481 | " writer.add_summary(summary_str, global_step=step)\n", 482 | " \n", 483 | " if step % 200 == 0:\n", 484 | " vali_image = mnist.validation.images - mean_data\n", 485 | " vali_acc = sess.run(\n", 486 | " accuracy,\n", 487 | " feed_dict={\n", 488 | " input_images: vali_image,\n", 489 | " labels: mnist.validation.labels\n", 490 | " })\n", 491 | " print((\"step: {}, train_acc:{:.4f}, vali_acc:{:.4f}\".\n", 492 | " format(step, train_acc, vali_acc)))" 493 | ] 494 | }, 495 | { 496 | "cell_type": "markdown", 497 | "metadata": { 498 | "deletable": true, 499 | "editable": true 500 | }, 501 | "source": [ 502 | "### Visualize train_data" 503 | ] 504 | }, 505 | { 506 | "cell_type": "code", 507 | "execution_count": 15, 508 | "metadata": { 509 | "ExecuteTime": { 510 | "end_time": "2017-04-23T12:59:50.504392", 511 | "start_time": "2017-04-23T12:59:49.038455" 512 | }, 513 | "collapsed": false, 514 | "deletable": true, 515 | "editable": true 516 | }, 517 | "outputs": [ 518 | { 519 | "data": { 520 | "image/png": "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\nP6SehDwxzI+KAAAAAElFTkSuQmCC\n", 521 | "text/plain": [ 522 | "" 523 | ] 524 | }, 525 | "metadata": {}, 526 | "output_type": "display_data" 527 | } 528 | ], 529 | "source": [ 530 | "feat = sess.run(features, feed_dict={input_images:mnist.train.images[:10000]-mean_data})\n", 531 | "\n", 532 | "%matplotlib inline\n", 533 | "import matplotlib.pyplot as plt\n", 534 | "\n", 535 | "labels = mnist.train.labels[:10000]\n", 536 | "\n", 537 | "f = plt.figure(figsize=(16,9))\n", 538 | "c = ['#ff0000', '#ffff00', '#00ff00', '#00ffff', '#0000ff', \n", 539 | " '#ff00ff', '#990000', '#999900', '#009900', '#009999']\n", 540 | "for i in range(10):\n", 541 | " plt.plot(feat[labels==i,0].flatten(), feat[labels==i,1].flatten(), '.', c=c[i])\n", 542 | "plt.legend(['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'])\n", 543 | "plt.grid()\n", 544 | "plt.show()" 545 | ] 546 | }, 547 | { 548 | "cell_type": "markdown", 549 | "metadata": { 550 | "deletable": true, 551 | "editable": true 552 | }, 553 | "source": [ 554 | "### Visualize test_data" 555 | ] 556 | }, 557 | { 558 | "cell_type": "code", 559 | "execution_count": 16, 560 | "metadata": { 561 | "ExecuteTime": { 562 | "end_time": "2017-04-23T12:59:51.172781", 563 | "start_time": "2017-04-23T12:59:50.505331" 564 | }, 565 | "collapsed": false, 566 | "deletable": true, 567 | "editable": true 568 | }, 569 | "outputs": [ 570 | { 571 | "data": { 572 | "image/png": "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\n957Rc5/zPZ7XC4bznHseLp/FZz73eZ/ne77npavlL0yPj663HBjJo0m+nHn+W+xmM0YGAMCKueO6\nVjvZjO+U2I0vbYQDzH0HdCebMTIAAFZMcF2rTdkxZSeuluEAu1ndezrLrMbflJEBALBiguvabcKO\nKa6W4UA7Wc17Opdz53YTRgYAwIoJrizJ1TJcYlXv6ezGanwAgEMIrgCvxCre09mJ1fgAAIcQXAHW\nzWp8AIBDCa4AI7AaHwBgId/jutXm/AJKAACAl8cd16019xdQAgAAvDzuuG6t3Vy6jSkAAMB4BNet\ntZO9O60nYhtTAABgZJYKby3bmAIAAJtBcN1qtjEFAADGZ6kwAAAAQxNcAQAAGJrgCgAAwNAEVwAA\nAIYmuAIAADA0wRUAAIChCa4AAAAMTXAFAABgaIIrAAAAQxNcAQAAGJrgCgAAwNAEVwAAAIYmuAIA\nADA0wRUAAIChCa4AAAAMTXAFAABgaIIrAAAAQxNcAQAAGFp197prWKiq/prkqXXXsWInkzy77iJg\nCXqVTaJf2RR6lU2iXzlu7+juq5Y5cejg+mpUVY9193vWXQccRa+ySfQrm0Kvskn0KyOxVBgAAICh\nCa4AAAAMTXCd37fXXQAsSa+ySfQrm0Kvskn0K8PwGVcAAACG5o4rAAAAQxNcj1lVfayqnqiqf1fV\nwl3Zqurmqnqyqs5X1R1z1ghJUlVvrKoHq+r30+MbFpz3x6r6TVWdq6rH5q6T7XbUrKw9X51e/3VV\nvXsddcISvbpTVc9Ns/RcVX1xHXVCVd1dVRer6vEFr5urDEFwPX6PJ/lIkkcWnVBVJ5J8PcktSa5L\n8omqum6e8uC/7kjycHefSvLw9HyRD3T39bbIZ05Lzspbkpya/t2e5JuzFgm5rL/rP5tm6fXd/aVZ\ni4T/+U6Smw953VxlCILrMevu33b3k0ecdkOS8939h+7+V5LvJTlz/NXB/zmT5J7p+J4kH1pjLXCQ\nZWblmSTf7T0/T3JlVV07d6FsPX/X2Rjd/UiSvx9yirnKEATXMbwlyZ/2PX96+hnM6erufmY6/nOS\nqxec10keqqpfVtXt85QGSZableYpI1i2D983Lb38cVW9a57S4LKZqwzhinUX8GpQVQ8lueaAlz7f\n3T+cux5Y5LBe3f+ku7uqFm05/v7uvlBVb0ryYFX9bnq3FoDl/SrJ27v7+ao6neQH2VuKCcABBNcV\n6O4bX+GvuJDkbfuev3X6GazUYb1aVX+pqmu7+5lpCdDFBb/jwvR4saruz96SOMGVOSwzK81TRnBk\nH3b3P/YdP1BV36iqk9397Ew1wrLMVYZgqfAYfpHkVFW9s6pem+TWJGfXXBPb52yS26bj25Jcslqg\nql5XVa9/6TjJB7O3ARnMYZlZeTbJJ6ddMN+b5Ll9S+BhLkf2alVdU1U1Hd+QvWuyv81eKRzNXGUI\n7rges6r6cJKvJbkqyY+q6lx331RVb05yV3ef7u4Xq+pzSX6a5ESSu7v7iTWWzXb6SpLvV9WnkzyV\n5ONJsr9Xs/e51/una60rktzb3T9ZU71smUWzsqo+M73+rSQPJDmd5HySfyb51LrqZXst2asfTfLZ\nqnoxyQtJbu3uRR/RgGNTVfcl2UlysqqeTnJnktck5ipjKTMSAACAkVkqDAAAwNAEVwAAAIYmuAIA\nADA0wRUAAIChCa4AAAAMTXAFAABgaIIrAAAAQxNcAQAAGNp/AGJj424mV+YtAAAAAElFTkSuQmCC\n", 573 | "text/plain": [ 574 | "" 575 | ] 576 | }, 577 | "metadata": {}, 578 | "output_type": "display_data" 579 | } 580 | ], 581 | "source": [ 582 | "feat = sess.run(features, feed_dict={input_images:mnist.test.images[:10000]-mean_data})\n", 583 | "\n", 584 | "%matplotlib inline\n", 585 | "import matplotlib.pyplot as plt\n", 586 | "\n", 587 | "labels = mnist.test.labels[:10000]\n", 588 | "\n", 589 | "f = plt.figure(figsize=(16,9))\n", 590 | "c = ['#ff0000', '#ffff00', '#00ff00', '#00ffff', '#0000ff', \n", 591 | " '#ff00ff', '#990000', '#999900', '#009900', '#009999']\n", 592 | "for i in range(10):\n", 593 | " plt.plot(feat[labels==i,0].flatten(), feat[labels==i,1].flatten(), '.', c=c[i])\n", 594 | "plt.legend(['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'])\n", 595 | "plt.grid()\n", 596 | "plt.show()" 597 | ] 598 | }, 599 | { 600 | "cell_type": "code", 601 | "execution_count": 17, 602 | "metadata": { 603 | "ExecuteTime": { 604 | "end_time": "2017-04-23T12:59:51.177977", 605 | "start_time": "2017-04-23T12:59:51.174860" 606 | }, 607 | "collapsed": true, 608 | "deletable": true, 609 | "editable": true 610 | }, 611 | "outputs": [], 612 | "source": [ 613 | "sess.close()" 614 | ] 615 | } 616 | ], 617 | "metadata": { 618 | "anaconda-cloud": {}, 619 | "kernelspec": { 620 | "display_name": "Python [conda root]", 621 | "language": "python", 622 | "name": "conda-root-py" 623 | }, 624 | "language_info": { 625 | "codemirror_mode": { 626 | "name": "ipython", 627 | "version": 3 628 | }, 629 | "file_extension": ".py", 630 | "mimetype": "text/x-python", 631 | "name": "python", 632 | "nbconvert_exporter": "python", 633 | "pygments_lexer": "ipython3", 634 | "version": "3.5.2" 635 | } 636 | }, 637 | "nbformat": 4, 638 | "nbformat_minor": 1 639 | } 640 | --------------------------------------------------------------------------------