tensorflow之Graph、Session
学习完tensorflow变量常量等基本量的操作,意味着最基本的东西都有了,使用这些基本的操作,我们就做一些数学运算,至于接下来如何操作基本量和组成更大的计算图,那就需要学习Graph和Session了。
学习完tensorflow变量常量等基本量的操作,意味着最基本的东西都有了,使用这些基本的操作,我们就做一些数学运算,至于接下来如何操作基本量和组成更大的计算图,那就需要学习Graph和Session了。
TensorFlow 无可厚非地能被认定为 神经网络中最好用的库之一。它擅长的任务就是训练深度神经网络.通过使用TensorFlow我们就可以快速的入门神经网络,大大降低了深度学习(也就是深度神经网络)的开发成本和开发难度.。TensorFlow 的开源性,让所有人都能使用并且维护, 巩固它. 使它能迅速更新, 提升。
现在新版本的tensorflow除了支持Graph Execution之外,还提供了Eager Execution。
要说Pytorch/Tensorflow/Keras,就不能不提它的符号主义特性
事实上,Pytorch也好,Tensorflow也好,其实是一款符号主义的计算框架,未必是专为深度学习设计的。假如你有一个与深度学习完全无关的计算任务想运行在GPU上,你完全可以通过Pytorch/Tensorflow编写和运行。
算法: 算法中的指令描述的是一个计算,当其运行时能从一个初始状态和(可能为空的)初始输入开始,经过一系列有限而清晰定义的状态,最终产生输出并停止于一个终态。一个状态到另一个状态的转移不一定是确定的。随机化算法在内的一些算法,包含了一些随机输入.
数据结构: 数据结构是计算机存储、组织数据的方式。数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率.
先说数据结构,毕竟算法也得有东西算,才又算法,所谓先有鸡后有蛋
数据结构:既然是结构,里面肯定是有不同的数据的,与其叫数据结构,不如叫数据流,数据流中包含了各种数据,数据结构构成流,流亦是数据结构,面向对象就是,万物皆数据,以流的形式呈现.
算法就是解决问题的方法,以函数或者是类的形式出现,它决定传入的参数,对数据流进行修改,留下需要的,抛弃不需要的,将数据和其他数据组成在一起,形成数据流,将数据流和数据流组成在一起,形成新的数据流,将数据流拆分成数据,再聚合,这就是算法的作用。
算法就是数据流的灵魂,没有算法的数据其实没有灵魂的
Keras是由纯python编写的基于不同的深度学习后端开发的深度学习框架。
支持的后端有:
- 谷歌的 TensorFlow 后端
- 微软的 CNTK 后端
- Theano 后端
Keras是一个高层神经网络API,支持快速实验,能够把你的idea迅速转换为结果,如果有如下需求,可以优先选择Keras:
简易和快速的原型设计(keras具有高度模块化,极简,和可扩充特性)
支持CNN和RNN,或二者的结合
无缝CPU和GPU切换
keras的优点:
用户友好:Keras是为人类而不是天顶星人设计的API。用户的使用体验始终是我们考虑的首要和中心内容。Keras遵循减少认知困难的最佳实践:Keras提供一致而简洁的API, 能够极大减少一般应用下用户的工作量,同时,Keras提供清晰和具有实践意义的bug反馈。
模块性:模型可理解为一个层的序列或数据的运算图,完全可配置的模块可以用最少的代价自由组合在一起。具体而言,网络层、损失函数、优化器、初始化策略、激活函数、正则化方法都是独立的模块,你可以使用它们来构建自己的模型。
易扩展性:添加新模块超级容易,只需要仿照现有的模块编写新的类或函数即可。创建新模块的便利性使得Keras更适合于先进的研究工作。
与Python协作:Keras没有单独的模型配置文件类型(作为对比,caffe有),模型由python代码描述,使其更紧凑和更易debug,并提供了扩展的便利性。
NumPy 是一个 Python 包。 它代表 “Numeric Python”。 它是一个由多维数组对象和用于处理数组的例程集合组成的库。 Numeric,即 NumPy 的前身,是由 Jim Hugunin 开发的。 也开发了另一个包 Numarray ,它拥有一些额外的功能。 2005年,Travis Oliphant 通过将 Numarray 的功能集成到 Numeric 包中来创建 NumPy 包。 这个开源项目有很多贡献者。