文档章节

学习笔记TF047:PlayGround、TensorBoard

利炳根
 利炳根
发布于 2017/08/20 11:39
字数 1698
阅读 14
收藏 0
点赞 0
评论 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

© 著作权归作者所有

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

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

oncast ⋅ 2017/09/08 ⋅ 0

TensorFlow学习笔记(7):TensorBoard——Tensor与Graph可视化

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

丹追兵 ⋅ 2017/02/09 ⋅ 0

基于 Web 的 Go 语言 IDE - Wide 1.5.2 发布

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

88250 ⋅ 2016/12/15 ⋅ 22

《从零开始学Swift》学习笔记(Day4)——用Playground工具编写Swift

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

智捷课堂 ⋅ 2015/08/24 ⋅ 0

基于 Web 的 Go 语言 IDE - Wide 1.5.1 发布

Wide 是一个基于 Web 的 Go 语言 IDE, 其目标不是彻底代替本地 IDE,而是做本地 IDE 很难做到的事情: 分享代码:类似 playground,但支持多文件并提供嵌入方式,在其他网站(比如技术社区帖...

88250 ⋅ 2016/08/31 ⋅ 19

TensorFlow学习笔记-TensorBoard启动

TensorFlow有一个可视化工具,可以可视化展示和分析执行过程。 如果是源码安装的,按如下方式启动: python tensorflow/tensorboard/tensorboard.py --logdir=path/to/log-directory 如果pip...

openthings ⋅ 2015/12/29 ⋅ 0

机器学习 人工智能 博文链接汇总

115 [入门问题] [TensorFlow] [深度学习] [好玩儿的算法应用实例] [聊天机器人] [神经网络] [机器学习] [机器学习算法应用实例] [自然语言处理] [数据科学] [Python] [Java] [机器学习--初...

aliceyangxi1987 ⋅ 2017/05/13 ⋅ 0

基于 Web 的 Go 语言 IDE - Wide 1.5.0 发布!

Wide 是什么 Wide 是一个基于 Web 的 Go 语言团队 IDE。 在线开发:打开浏览器就可以进行开发、全快捷键 智能提示:代码自动完成、查看表达式、编译反馈、Lint 实时运行:极速编译、实时结果...

itfanr ⋅ 2016/02/05 ⋅ 7

TensorFlow学习笔记(6):TensorBoard之Embeddings

前言 本文基于TensorFlow官网的How-Tos写成。 TensorBoard是TensorFlow自带的一个可视化工具,Embeddings是其中的一个功能,用于在二维或三维空间对高维数据进行探索。 An embedding is a ma...

丹追兵 ⋅ 2017/02/08 ⋅ 0

第一讲:TensorFlow概览

人生苦短,我用Python 文:郑元春 从TF的Github的首页上转的图 之前在搜索TF的各种学习资料的时候,搜索的大部分结果都是直接开始上代码。虽然跟着注释能够看懂一次,但是真正要自己开始动手...

北静王 ⋅ 2017/07/13 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Boost库编译应用

版本:Boost 1.66.0 Windows库编译 官网指南:直接执行bootstrap.bat处理文件即可,可以我却遇到一堆的问题。 环境:Windows 10 + Visual Studio 2017 Boost编译出来库命名 boost库生成文件命...

水海云 ⋅ 31分钟前 ⋅ 0

解决Eclipse发布到Tomcat丢失依赖jar包的问题

如果jar文件是以外部依赖的形式导入的。Eclipse将web项目发布到Tomcat时,是不会自动发布这些依赖的。 可以通过Eclipse在项目上右击 - Propertics - Deployment Assembly,添加“Java Build ...

ArlenXu ⋅ 31分钟前 ⋅ 0

iview tree组件层级过多时可左右滚动

使用vue+iview的tree组件,iview官网iview的tree树形控件 问题描述:tree层级过多时左右不可滚动 问题解决:修改overflow属性值 .el-tree-node>.el-tree-node_children { overflow: vi...

YXMBetter ⋅ 33分钟前 ⋅ 0

分布式锁

1.通过数据库实现 http://www.weizijun.cn/2016/03/17/%E8%81%8A%E4%B8%80%E8%81%8A%E5%88%86%E5%B8%83%E5%BC%8F%E9%94%81%E7%9A%84%E8%AE%BE%E8%AE%A1/ 2.ZK实现:curator-recipes分布式锁的......

素雷 ⋅ 41分钟前 ⋅ 0

Sublime Text3 快捷键

选择类 Ctrl+D 选中光标所占的文本,继续操作则会选中下一个相同的文本。 Alt+F3 选中文本按下快捷键,即可一次性选择全部的相同文本进行同时编辑。举个栗子:快速选中并更改所有相同的变量名...

AndyZhouX ⋅ 48分钟前 ⋅ 0

XamarinAndroid组件教程RecylerView自定义适配器动画

XamarinAndroid组件教程RecylerView自定义适配器动画 如果RecyclerViewAnimators.Adapters命名空间中没有所需要的适配器动画,开发者可以自定义动画。此时,需要让自定义的动画继承Animation...

大学霸 ⋅ 48分钟前 ⋅ 0

eureka 基础(二)

使用Eureka服务器进行身份验证 如果其中一个eureka.client.serviceUrl.defaultZone网址中包含一个凭据(如http://user:password@localhost:8761/eureka)),HTTP基本身份验证将自动添加到您...

明理萝 ⋅ 51分钟前 ⋅ 1

Kubernetes(五) - Service

Kubernetes解决的另外一个痛点就是服务发现,服务发现机制和容器开放访问都是通过Service来实现的,把Deployment和Service关联起来只需要Label标签相同就可以关联起来形成负载均衡,基于kuberne...

喵了_个咪 ⋅ 51分钟前 ⋅ 0

更新队友POM文件后报错

打开报错的地方的pom及其引用方法所在文件的pom,观察其版本号是否一致,不一致进行更改

森火 ⋅ 今天 ⋅ 0

IDEA使用sonarLint

一、IDEA如何安装SonarLint插件 1.打开 Idea 2.点击【File】 3.点击【Settings】 4.点击【Plugins】 5.在搜索栏中输入“sonarlint”关键字 6.点击【Install】进行安装 7.重启Idea 二、IDEA如...

开源中国成都区源花 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部