Tensorflow学习笔记:基础篇(9)——Mnist手写集完结版(Embedding Visualization)

Tensorflow学习笔记:基础篇(9)——Mnist手写集完结版(Embedding Visualization)


前序

— 前文中,我们说了过拟合现象,通过Dropout的方法进行缓解。
— 今天是我们三层全连接神经网络的最后一篇博文,我们先来回忆一下这一系列我们做了些什么:
单层神经网络 —> 三层神经网络 —> 交叉熵函数 —> Optimizer —> Dropout —> Tensorboard
— 我们针对这个神经网络进行反复修改与优化,将准确率从0.91一步步提升至0.98,大家有没有发现,我们到目前为止得到的结果一直是一个准确率这个数字,有人似乎会好奇这些图片真的能分类的这么准吗,我们能够在Tensorboard可视化界面中看到分类完成后效果吗,答案是可以的。
— 这也引出了我们今天要做的事情:Embedding Visualization。有人会问,这是个什么玩意呢?
— 这个是Tensorflow针对moist手写数据集做的一个可视化项目,这个在Tensorflow没更新前,官网上是有的,现在出来1.4版本后,被删减掉了,我帮大家把这个网址重新找出来,供大家进行参考学习。
Reference:TensorBoard: Embedding Visualization
这里写图片描述
这幅动图就是我从Tensorflow官网上抓取下来的,大家可以看到一个个数字图片通过模型训练后,能够进行扎堆归类,一个数字的聚集在一块区域,用一个颜色显示,大家是不是觉得很赞呢,那么这效果究竟是怎么实现的呢~~


Setup

这里写图片描述

Mnist手写数据集的1w个测试集图片,被随机顺序存放在sprite image中,排列顺序为100x100,这里我给出了下载链接:sprite image
这里写图片描述

这里写图片描述

接下来,我们只需要按照官方文档,在之前的神经网络中修改即可。


准备工作

在程序的根目录中新建一个projector文件夹,就像这样:
这里写图片描述
在projector文件夹中再新建一个projector同名文件夹和一个data文件夹:
这里写图片描述
将刚才的mnist_10k_sprite.png的数据集图片放在data文件夹中:
这里写图片描述
并且保证projector的同名文件夹中清空(第一次创建不存在此问题,如第二次运行程序,请先清空,否则程序会报错)
这里写图片描述


代码示例

1、数据准备
import tensorflow as tf
from tensorflow.examples.tutorials.mnist import input_data
from tensorflow.contrib.tensorboard.plugins import projector

# 载入数据集
mnist = input_data.read_data_sets("MNIST_data", one_hot=True)
#图片数量
image_num = 10000
#文件路径
DIR = "F://untitled/"#设置文件路径(这是我的程序文件位置,大家自行做修改),之后生成metadata文件时会用到
#载入图片
embedding = tf.Variable(tf.stack(mnist.test.images[:image_num]), trainable=False, name='embedding')
#tf.stack(mnist.test.images[:image_num])中的image_num可以控制测试图片个数,最大为10000,我这里取值为10000
# 批次
n_batch = 100

sess = tf.Session()
#这里我们今天直接开启session,替换之前在后面用的with tf.Session() as sess

def variable_summaries(var):
    with tf.name_scope('summaries'):
        mean = tf.reduce_mean(var)
        tf.summary.scalar('mean', mean)
        with tf.name_scope('stddev'):
            stddev = tf.sqrt(tf.reduce_mean(tf.square(var - mean)))
        tf.summary.scalar('stddev', stddev)
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值