tensorflow(一)

来源:互联网 发布:文案网站 知乎 编辑:程序博客网 时间:2024/06/06 02:57

1)使用图(graph)来表示计算任务;

2)在被称之为回话session的上下文(context)中执行图

3)使用tensor表示数据

4)使用变量variable维护状态

5)使用feed和fetch为任意操作输入和输出数据


tensorflow是一个编程系统,使用图来表示计算任务,图中的节点被称之为op,

一个op可以获得0个或者多个tensor,执行计算,产生0个或多个tensor。每个

tensor是一个类型化的多为数组。


一个tensorflow图描述了计算的过程,为了进行计算,图不必须在会话李被启动,

会话将图的op分法到诸如cpu或者gpu之类的设备上,同时提供执行方法,这些方

法被执行后,将产生tensor返回,在python中,返回的是tensor和numpy ndarray

对象。


tensorflow程序被组织成一个构建阶段和一个执行阶段,构建阶段op的执行步骤被

描述成一个图,执行阶段,使用会话执行执行图中的op


通常,在构建阶段创建一个图来表示和训练神经网络,然后执行阶段反复执行

图中的训练op。

构建图的第一步,是创建源op,源op不需要任何输入,


import tensorflow as tf# 创建一个常量 op, 产生一个 1x2 矩阵. 这个 op 被作为一个节点# 加到默认图中.## 构造器的返回值代表该常量 op 的返回值.matrix1 = tf.constant([[3., 3.]])# 创建另外一个常量 op, 产生一个 2x1 矩阵.matrix2 = tf.constant([[2.],[2.]])# 创建一个矩阵乘法 matmul op , 把 'matrix1' 和 'matrix2' 作为输入.# 返回值 'product' 代表矩阵乘法的结果.product = tf.matmul(matrix1, matrix2)

默认图现在有三个节点, 两个constant() op, 和一个matmul() op. 为了真正进行矩阵相乘运算, 并得到矩阵
乘法的 结果, 你必须在会话里启动这个图.


session对象在使用完后需要关闭以释放资源,除了显示调用close外,也可以使用with代码块来自动完

成关闭动作。


在实现上,tensorflow将图形定义转换成分布式执行的操作,以充分利用可用的计算资源,如果机器上

有超过一个可用的GPU,除第一个的其它GPU默认是不参与计算的,为了让tensorflow使用这些GPU,

必须将op明确的纸牌给他们执行。with……device


tensorflow使用tensor数据结构来代表所有的数据,计算图中,操作传递的数据都是tensor,tensor可以看做一个n维的数据,

一个tensor包含一个静态类型rank和一个shape。


变量

变量维护图执行规程中的状态信息,通常会将一个统计模型中的参数表示为一组变量,例如可以将一个神经网络的权重作为

某个变量存储在一个tensor中,在训练过程中,通过重复训练图,更新这个tensor。


fetch

为了取回操作的输出内容,可以在使用session对象的run()调用执行图时,闯入一些tensor,这些tensor会帮助你

取回结构,不仅可以取回单个节点的state,也可以取回多个节点。


feed:

tensor可以以变量或者常量的形式存储,feed机制还可以临时替代图中的任意操作中的tensor可以对图中任何操作提交

补丁。直接插入一个tensor。



原创粉丝点击