Tensorflow基础
来源:互联网 发布:js onclick this 编辑:程序博客网 时间:2024/06/02 05:26
Tensorflow基础
要利用好深度学习所带来的福利,选择一款好的深度学习工具必不可少。在谷歌内部,Tensorflow已经被成功应用到语音搜索、广告、电商、图片、街景图、翻译、YouTube等众多产品之中。基于Tensorflow开发的RankBrain排序算法在谷歌上千种排序算法中排在第三重要的位置。对比不同开源深度学习工具的社区活跃度,Tensorflow远远超过其他工具。
Tensorflow的三个基本概念:
- 计算图(tf.Graph)
- 张量(tf.Tensor)
- 会话(tf.Session)
TensorFlow 计算模型—计算图
Tensorflow 中的每一个计算都是计算图上的一个节点,而节点之间的边描述了计算之间的依赖关系。Tensorflow程序一般可以分为两个阶段:
- 第一阶段需要定义计算图中所有的计算
- 第二阶段为执行计算
以下代码给出了计算定义阶段的样例:
import tensorflow as tfa = tf.constant([1, 2], name="a", dtype=tf.float32)b = tf.constant([2.0, 3.0], name="b")result = a+b
在这个过程中,Tensorflow会自动将定义的计算转化为计算图上的节点。
Tensorflow 数据模型—张量
张量是Tensorflow管理数据的形式,所有的数据都通过张量的形式来表示。张量在Tensorflow中的实现并不是直接采用数组的形式,它只是对Tensorflow中运行结果的引用。
在张量中并没有真正保存数字,它保存的是如何得到这些数字的计算过程。以向量加法为例:
import tensorflow as tfa = tf.constant([1.0, 2.0], name="a")b = tf.constant([2.0, 3.0], name="b")result = tf.add(a, b, name="add")print(result)
结果为:
Tensor("add:0", shape=(2,), dtype=float32)
从上面代码的运行结果可以看出,一个张量中主要保存了三个属性:名字(name)、维度(shape)、类型(type)
- name:张量的唯一标识符,同时给出了这个张量如果计算出来的。name的形式:“node:src_output”,其中node为节点的名称,src_output表示当前张量来自节点的第几个输出。
- shape:描述了一个张量的维度信息。
- type:每一个张量会有一个唯一的类型。Tensorflow会对参与运算的所有张量进行类型的检查,当发现类型不匹配时会报错。如果不指定类型,Tensorflow会给出默认的类型,比如不带小数点的数会被默认为int32,带小数点的会默认为float32。因为使用默认类型有可能导致潜在的类型不匹配,所以一般建议通过指定dtype来明确指出变量或常量的类型。
张量的使用:
- 对中间计算结果的引用;
- 当计算图构造完成之后,张量可以用来获得计算结果。
Tensorflow 运行模型—会话
Tensorflow 使用会话(Session)来执行定义好的运算。会话拥有并管理Tensorflow程序运行时的所有资源。当所有计算完成之后,需要关闭会话来帮助系统回收资源,否则就可能出现资源泄漏的问题。
Tensorflow中使用会话的模式一般有两种:
- 明确调用会话生成函数和关闭会话函数:
sess = tf.Session()sess.run(...)sess.close()
然而,当程序因为异常而退出时,关闭会话的函数可能就不会被执行从而导致资源的泄漏。
- 通过python上下文管理器来使用会话:
with tf.Session() as sess: sess.run()
当上下文退出时,会话关闭和资源释放也自动完成了。
- TensorFlow基础
- Tensorflow基础
- Tensorflow基础
- Tensorflow 基础
- Tensorflow基础
- tensorflow基础
- Tensorflow基础
- TensorFlow基础
- tensorflow基础
- Tensorflow基础
- tensorflow基础学习笔记
- Tensorflow的基础用法
- 1、TensorFlow基础
- tensorflow 基础定义
- tensorflow入门基础
- TensorFlow基础(一)
- Tensorflow: 基础函数
- Tensorflow: Math基础
- realloc不安全函数
- HTTP协议详解
- Git创建新分支并和本地新建的同名分支关联
- 实模式和保护模式区别及寻址方式
- 浅尝Java中RSA加解密
- Tensorflow基础
- Unity3d 通过射线使物体移动
- JS中构造函数与new操作符
- Inno setup 界面设计入门(一)环境准备
- 数据库中索引和视图
- The C Programming Language 练习题3-5
- 全排列
- Intent的几种FLAG介绍
- HDU5157-Harry and magic string