文档章节

学习笔记TF047:PlayGround、TensorBoard

利炳根
 利炳根
发布于 2017/08/20 11:39
字数 1698
阅读 15
收藏 0

PlayGround。http://playground.tensorflow.org 。教学目的简单神经网络在线演示、实验图形化平台。可视化神经网络训练过程。在浏览器训练神经网络。界面,数据(DATA)、特征(FEATURES)、神经网络隐藏层(HIDDEN LAYERS)、层中连接线、输出(OUTPUT)。

数据。二维平面,蓝色正值,黄色负值。数据形态,圆形、异或、高斯、螺旋。数据配置,调整噪声(noise)大小,改变训练、测试数据比例(ratio),调整入输入每批(batch)数据数量1-30。

特征。特征提取(feature extraction)。每个点有X1、X2两个特征。衍生其他特征,X1X1、X2X2、X1X2、sin(X1)、sin(X2)。X1左边黄色是负,右边蓝色是正,表示横坐标值。X2上边蓝色是正,下边黄色是负,表示纵坐标值。X1X1横坐标抛物线信息。X2X2纵坐标抛物线信息。X1X2双曲抛物面信息。sin(X1)横坐标正弦函数信息。sin(X2)纵坐标正弦函数信息。分类器(classifier)结合特征,画出线,把原始颜色数据分开。

隐藏层。设置隐藏层数量、每个隐藏层神经元数量。隐藏层间连接线表示权重(weight),蓝色表示神经元原始输出,浅色表示神经元负输出。连接线粗细、深浅表示权重绝对值大小。鼠标放线上可以看到具体值,修改值。修改值要考虑激活函数。Sigmoid,没有负向黄色区域,值域(0,1)。下层神经网络神经元对上层输出再组合。根据上次预测准确性,反向传播每个组合不同权重。组合连接线粗细深浅变化。越深越粗,权重越大。

输出。黄色点归于黄色背景,蓝色点归于蓝色背景。背景颜色深浅代表可能性强弱。选定螺旋形数据,7个特征全部输入,3个隐藏层,第一层8个神经元,第二层4个神经元,第三层2个神经元。训练2分钟,测试损失(test loss)和训练损失(training loss)不再下降。只输入最基本前4特征,6个隐藏层,前4层8个神经元,第五层6个神经元,第六层2个神经元。增加神经元个数和神经网络层数。

TensorBoard。TensorFlow自带可视化工具,Web应用程序套件。7种可视化,SCALARS(训练过程准确率、损失值、权重/偏置变化)、IMAGES(训练过程记录图像)、AUDIO(训练过程记录音频)、GRAPHS(模型数据流图、各设备消耗内存时间)、DISTRIBUTIONS(训练过程记数据分布图)、HISTOGRAMS(训练过程记录数据柱状图)、EMBEDDINGS(展示词向量投影分布)。

运行本地服务器,监听6006端口。浏览器发出请求,分析训练记录数据,绘制训练过程图像。运行手写数字识别入门例子。python tensorflow-1.1.0/tensorflow/examples/tutorials/mnist/mnist/mnist_with_summaries.py 。打开TensorBoard面板。tensorboard -logdir=/tmp/mnist/logs/mnist_with_summaries 。浏览器找开网址,查看面板各项功能。

SCALARS面板。左边,Split on undercores(用下划线分开显示)、Data downloadlinks(数据下载链接)、Smoothing(图像曲线平滑程度)、Horizontal Axis(水平轴)。水平轴3种,STEP迭代次数,RELATIVE训练集测试集相对值,WALL时间。右边,准确率、交叉熵损失函数值变化曲线(迭代次数1000次)。每层偏置(biases)、权重(weights)变化曲线,每次迭代最大值、最小值、平均值、标准差。

IMAGES面板。训练数据集、测试集预处理后图片。

AUDIO面板。训练过程处理音频数据。

GRAPHS面板。数据流图。节点间连线为数据流,连线越粗,两个节点间流动张量(tensor)越多。左边,选择迭代步骤。不同Color(颜色)不同Structure(整个数据流图结构),不同Color不同Device(设备)。选择特定迭代step899,显示各个节点Compute time(计算时间)、Memory(内存消耗)。

DISTRIBUTIONS面板。平面表示特定层激活前后、权重、偏置分布。

HISTOGRAMS面板。立体表示特定层激活前后、权重、偏置分布。

EMBEDDINGS面板。词嵌入投影。

词嵌入(word embedding),自然语言处理,推荐系统。Word2vec。TensorFlow Word2vec basic版、optimised版。

降维分析。代码 https://github.com/tensorflow/tensorflow/blob/master/tensorflow/examples/tutorials/word2vec/word2vec_basic.py 。Word2vec训练数据集text8 http://mattmahoney.net/dc/textdata 。只包含a~z字符和空格,27种字符。Skip-gram模型,根据目标词汇预测上下文。给定n个词围绕词w,w预测一个句子中一个缺漏词c,概率p(c|w)表示。生成t-SNE降给呈现词汇接近程度关系。

word2vec_basic.py。 下载文件读取数据,read_data函数,读取输入数据。输出list,每项一词。 建立词汇字典,对应词、编码。dictionary存储词、编码。reverse_dictionary是反过来的dictionary 编码、词。data是词list对应词编码上一步词list转编码。count存词汇、词频,重复数量少于49999,用'UNK'表示稀有词。 产生一个批次(batch)训练数据。定义generate_batch函数,输入batch_size、num_skip、skip_window,batch_size是每个batch大小,num_skips样本源端考虑次数,skip_window左右考虑词数,skip_window*2=num_skips。返回batch、label。batch形状[batch_size],label形状[batch_size,1],一个中心词预测周边词。 构建、训练模型。Skip-gram模型。 t-SNE降维呈现。Matplotlib绘制出图形。

t-SNE。流形学习(manifold Learning)。假设数据均匀采样于一个高维空间低维流形。流形学习,找到高维空间低维流形,求相庆嵌入映射,实现维数约简或数据可视化。线性流形学习如主成份分析(PCA),非线性流形学习如特距特征映射(Isomap)、拉普拉斯特征映射(Laplacian eigenmaps,LE)、局部线性嵌入(Locally-linear embedding,LLE)。

嵌入投影。EMBEDDINGS面板,交互式可视化、分析高维数据。例子 https://github.com/tensorflow/models/blob/master/tutorials/embedding/word2vec_optimized.py

定义操作(operator,OP),SkipgramWord2vec、NegTrainWord2vec。操作先编译,执行。TF_INC=$(python -c 'import tensorflow as tf;print(tf.sysconfig.get_include())') 。g++ -std=c++11 -shared word2vec_ops.cc word2vec_kernels.cc -o word2vec_ops.so -fPIC -I $TF_INC -O2 -D_GLIBCXX_USE_CXX11_ABI=0 。当前目录下生成word2vec_ops.so文件,执行word2vec_optimized.py,生成模型、日志文件,位于/tmp/,执行tensorboard --logdir=/tmp/ 。访问浏览器。

EMBEDDINGS面板左边工具栏,降维方式T-SNE、PCA、CUSTOM,二维、三维图像切换。t-SNE降维工具,手动调整Dimension(困惑度)、Learnign rate(学习率),生成10000个点分布。右边,正则表达式匹配词,词间余弦距离、欧式距离关系。任意选择一个点,选择“isolate 101 points”按钮,展示100个空间上最近被选择点词,词数量。

参考资料: 《TensorFlow技术解析与实战》

欢迎付费咨询(150元每小时),我的微信:qingxingfengzi

© 著作权归作者所有

共有 人打赏支持
利炳根
粉丝 12
博文 60
码字总数 136346
作品 0
深圳
实践随笔之初识Tensorflow

TensorFlow是Google推出的深度学习框架,相信谷歌出品,必属精品。养成良好的写笔记习惯,好记性不如烂笔头(* ̄(oo) ̄) 安装&入门教程 网上一堆安装和入门教程,以下两个链接都是比较靠谱的。...

oncast
2017/09/08
0
0
TensorFlow学习笔记(7):TensorBoard——Tensor与Graph可视化

前言 本文基于TensorFlow官网How-Tos的Visualizing Learning和Graph Visualization写成。 TensorBoard是TensorFlow自带的一个可视化工具。本文在学习笔记(4)的基础上修改少量代码,以探索T...

丹追兵
2017/02/09
0
0
深度学习入门笔记系列 ( 三 )

本系列将分为 8 篇 。今天是第三篇 。主要讲讲感知器模型和 tensorboard 的基本使用方法 。 1. 感知器模型 因为小詹之前写过一篇感知器模型的介绍 ,这里就不赘述了 。 2. tensorboard Tenso...

技术小能手
07/30
0
0
基于 Web 的 Go 语言 IDE - Wide 1.5.2 发布

Wide 1.5.2 发布!这个版本由热心的开源贡献者加入了韩语支持,欢迎各位 gophers 加入到 Wide 的开源开发中。另外,这个版本还改进了 Playground,使其更稳定和易用。目前黑客派社区已经支持...

88250
2016/12/15
3.7K
22
《从零开始学Swift》学习笔记(Day4)——用Playground工具编写Swift

Swift 2.0学习笔记(Day4)——用Playground工具编写Swift 原创文章,欢迎转载。转载请注明:关东升的博客 Playground程序运行①区域是代码编写视图;②区域是运行结果视图;③区域是时间轴视...

智捷课堂
2015/08/24
367
0

没有更多内容

加载失败,请刷新页面

加载更多

springboot 上传图片(多张和单张都可以)

@RequestMapping("/upload")@ResponseBodypublic String handleFileUpload(HttpServletRequest request) { MultipartHttpServletRequest params = ((MultipartHttpServletRequest) req......

MrBoyce
1分钟前
0
0
Android Studio 3.X打开DDMS

Android Studio更新到3.0版本以后Tools菜单变成了这样了 DDMS入口找不到了 在设置里找到SDK的路径 打开tools文件夹 双击打开 monitor.bat文件 会出来一个黑色命令行框,稍等一下,熟悉的DDM...

lanyu96
6分钟前
0
0
js 进一法、四舍五入法、舍去法 保留两位小数

function format_number(num,len) { len = len > 0 && len <= 20 ? len : 2; var result = parseFloat(num); num=isNaN(result)?0:result; var numpow=Math.pow(10,len)......

xiaogg
13分钟前
0
0
Node.js中的不安全跳转如何防御详解

Node.js中的不安全跳转如何防御详解 导语: 早年在浏览器大战期间,有远见的Chrome认为要运行现代Web应用,浏览器必须有一个性能非常强劲的Java引擎,于是Google自己开发了一个高性能的开源的...

开元中国2015
14分钟前
1
0
国内首个区块链试验区在海南成立

据新华社报道,10月8日,海南自贸区(港)区块链试验区正式在海南生态软件园授牌设立,这也是目前为止国内第一个区块链试验区。 该试验区位于海南生态软件园,与试验区同一天成立还有2家研究...

问题终结者
15分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部