array(2) { ["docs"]=> array(10) { [0]=> array(10) { ["id"]=> string(3) "428" ["text"]=> string(77) "Visual Studio 2017 单独启动MSDN帮助(Microsoft Help Viewer)的方法" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(8) "DonetRen" ["tagsname"]=> string(55) "Visual Studio 2017|MSDN帮助|C#程序|.NET|Help Viewer" ["tagsid"]=> string(23) "[401,402,403,"300",404]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400964" ["_id"]=> string(3) "428" } [1]=> array(10) { ["id"]=> string(3) "427" ["text"]=> string(42) "npm -v;报错 cannot find module "wrapp"" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(4) "zzty" ["tagsname"]=> string(50) "node.js|npm|cannot find module "wrapp“|node" ["tagsid"]=> string(19) "[398,"239",399,400]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400760" ["_id"]=> string(3) "427" } [2]=> array(10) { ["id"]=> string(3) "426" ["text"]=> string(54) "说说css中pt、px、em、rem都扮演了什么角色" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(12) "zhengqiaoyin" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400640" ["_id"]=> string(3) "426" } [3]=> array(10) { ["id"]=> string(3) "425" ["text"]=> string(83) "深入学习JS执行--创建执行上下文(变量对象,作用域链,this)" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "Ry-yuan" ["tagsname"]=> string(33) "Javascript|Javascript执行过程" ["tagsid"]=> string(13) "["169","191"]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511399901" ["_id"]=> string(3) "425" } [4]=> array(10) { ["id"]=> string(3) "424" ["text"]=> string(30) "C# 排序技术研究与对比" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(9) "vveiliang" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(8) ".Net Dev" ["catesid"]=> string(5) "[199]" ["createtime"]=> string(10) "1511399150" ["_id"]=> string(3) "424" } [5]=> array(10) { ["id"]=> string(3) "423" ["text"]=> string(72) "【算法】小白的算法笔记:快速排序算法的编码和优化" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(9) "penghuwan" ["tagsname"]=> string(6) "算法" ["tagsid"]=> string(7) "["344"]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511398109" ["_id"]=> string(3) "423" } [6]=> array(10) { ["id"]=> string(3) "422" ["text"]=> string(64) "JavaScript数据可视化编程学习(二)Flotr2,雷达图" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "chengxs" ["tagsname"]=> string(28) "数据可视化|前端学习" ["tagsid"]=> string(9) "[396,397]" ["catesname"]=> string(18) "前端基本知识" ["catesid"]=> string(5) "[198]" ["createtime"]=> string(10) "1511397800" ["_id"]=> string(3) "422" } [7]=> array(10) { ["id"]=> string(3) "421" ["text"]=> string(36) "C#表达式目录树(Expression)" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(4) "wwym" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(4) ".NET" ["catesid"]=> string(7) "["119"]" ["createtime"]=> string(10) "1511397474" ["_id"]=> string(3) "421" } [8]=> array(10) { ["id"]=> string(3) "420" ["text"]=> string(47) "数据结构 队列_队列实例:事件处理" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "idreamo" ["tagsname"]=> string(40) "C语言|数据结构|队列|事件处理" ["tagsid"]=> string(23) "["246","247","248",395]" ["catesname"]=> string(12) "数据结构" ["catesid"]=> string(7) "["133"]" ["createtime"]=> string(10) "1511397279" ["_id"]=> string(3) "420" } [9]=> array(10) { ["id"]=> string(3) "419" ["text"]=> string(47) "久等了,博客园官方Android客户端发布" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(3) "cmt" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511396549" ["_id"]=> string(3) "419" } } ["count"]=> int(200) } 222 【Tensorflow入门教程一】纵观全局:tensorflow各函数块解析。 - 爱码网

作为深度学习的最热门工具之一,Tensorflow可以为我们的模型搭建以及数据运算带来极大的便利。作为一门工具,必不可少地是要对它有一个全局的了解。私以为,如果对它的整体的模块架构有一个了解的话,再结合自己的兴趣与需要,能够节约更多的时间去思考自己的网络结构设计,完善更多细节。

登陆到tensorflow官网www.tensorflow.org,没有梯子的同学可以使用如下网站:devdocs.io,这个网站目前支持大部分的API接口的离线阅读,你只需要enable你需要的语言,然后install即可,绝对的查阅代码神器。从官网可以查阅到tensorflow的相关API。

从上图可以看到tensorflow中封装了许多的函数,其中主要介绍我们比较常用的一些模块:

tf ——tf模块下的函数用于完成一些常用的运算操作,比如说tf.abs(计算绝对值),tf.add(逐元素的相加),tf.concat(tensor的拼接)等等。里面的操作大部分的nu'mpy也能够实现,只是这里的操作相比于numpy都是针对tensor的。以及一些数据结构的定义,如tf.float32,tf.int64等等。该模块下一共有480左右的函数,感兴趣的可以看看。

【Tensorflow入门教程一】纵观全局:tensorflow各函数块解析。

tf.app——该模块下的函数只有一个,即`tf.app.run(main=None,argv=None)`,运行带argv参数的main函数。

【Tensorflow入门教程一】纵观全局:tensorflow各函数块解析。

tf.data——实现对数据集的操作,可以用来制作供tensorflow读取的数据集,其数据类型为tensor,并可以输出相应的TFRecord文件。

【Tensorflow入门教程一】纵观全局:tensorflow各函数块解析。

tf.distributions——实现统计学中的各种分布。该模块下的各函数用于实现统计学的各个分布,如伯努利、均匀分布、高斯分布等等。

【Tensorflow入门教程一】纵观全局:tensorflow各函数块解析。

tf.estimator——实现对模型的训练和评估。该模块下包含有tensorflow封装的多种分类器。

【Tensorflow入门教程一】纵观全局:tensorflow各函数块解析。

tf.gfile——对文件的操作。该模块下的函数可以实现文件I/O的操作以及拷贝、重命名等等。

【Tensorflow入门教程一】纵观全局:tensorflow各函数块解析。

tf.image——实现对图像的操作。该模块下的相关函数包含图像处理的功能,类似于opencv,有着图像亮度、饱和度、反相、裁剪、resize、图像格式转换(RGB TO HSV,YUV,YIQ,gray)旋转、sobel边缘检测等一系列功能,相当于一个小型的opencv图像处理包了。

【Tensorflow入门教程一】纵观全局:tensorflow各函数块解析。

tf.initializers——实现对权值等变量的初始化。该模块下有许多个初始化的类,用于对网络中的权值参数等进行初始化。

【Tensorflow入门教程一】纵观全局:tensorflow各函数块解析。

tf.keras——为tensorflow调用keras工具的一个python API,是一个比较大的模块,里面包含了网络的各种操作。

【Tensorflow入门教程一】纵观全局:tensorflow各函数块解析。

tf.layer——实现层与层之间的操作。该模块下是网络结构中的层与层之间的计算操作的实现,包含池化、卷积、反卷积、全连接、dropout、batch normalization等等功能。其中包含的功能与后面要介绍的tf.nn下的函数类似,不过貌似后者用得更多一点。

【Tensorflow入门教程一】纵观全局:tensorflow各函数块解析。

tf.losses——包含一些常用loss的使用。如sigmoid_cross_entropy,softmax_cross_entropy,hinge_loss,也可以通过add_loss来添加自己定义的loss函数。

【Tensorflow入门教程一】纵观全局:tensorflow各函数块解析。

tf.nn——完成层与层之间的运算操作。包含tf.layer中的大部分功能,如池化、卷积、BN、dropout、全连接,此外有多种**函数的实现,如relu、leaky relu、 sigmoid等等。相比tf.layer,tf.nn下的函数貌似更常用一点。

【Tensorflow入门教程一】纵观全局:tensorflow各函数块解析。

tf.summary——用于记录训练过程中的参数。当我们训练一个模型的时候,往往需要了解它的参数训练过程,以及相应的loss走向,精度等等。而tf.summary这个模块可以将申明了tensor变量的值进行记录汇总。通过保存模型的方法,在训练完成后可以通过TensorBoard查看模型的相应参数。是一个在做研究时比较常用的模块。

【Tensorflow入门教程一】纵观全局:tensorflow各函数块解析。

tf.train——用于对网络的训练。该模块下包含多个优化算法,如SGD,Adagrad等等,用于整个模型的训练部分的优化过程。也是比较常用的一个模块。

【Tensorflow入门教程一】纵观全局:tensorflow各函数块解析。

tf.contrib——这是tensorflow的扩展模块,该模块下有许多tensorflow官方或者是民间大牛在维护的相应函数API,是一个比较庞大的资源库,里面有非常使用的函数,比如tensorflow的简化版slim,用slim写网络结构就非常方便。还有其他的一些,感兴趣的可以自行查阅。


以上就是我们在使用tensorflow时比较常用的一些模块了。其实看了这么多,对于需要用哪些大家心里也比较清楚了。不过tensorflow只是一个工具,关键还是在于算法的架构,理论才是重中之重。希望大家在平时也不要忘了对文献的阅读。

最后贴一张通过深度学习生成的艺术图:

【Tensorflow入门教程一】纵观全局:tensorflow各函数块解析。






相关文章: