基础概念

编程模型

tensorflow是用数据流图做计算的。数据流图是由节点(node)和边(edge)组成的有向无环图(DAG),tensor代表了数据流图中的边,而flow代表了数据流图中节点的操作。

TensorFlow的边有两种连接关系:数据依赖和控制依赖。实线边表示数据依赖,虚线边表示控制依赖,可以控制操作的运行。张量再数据流图中从前往后流动一遍就完成了一次前向传播,而残差从前向后流动的一遍就完成了一次反向传播。

节点

图中节点又称算子,它代表一个操作(operation,OP),一般用来表示施加的数学运算,也可以表示数据的输入(feed in)的起点以及输出(push out)的终点,或者是读取/写入持久变量(persistent variable)的终点。

把操作任务描述成有向无环图。构建图的第一步是创建各个节点。

import tensorflow as tf

matrix1 = tf.constant([[3.,3.]])#创建一个一个常量1X2的矩阵

matrix2 = tf.constant([[2.],[2.]])#2X1的矩阵

product = tf.matmul(matrix1,matrix2)
会话

启动图的第一步是创建一个Session对象。会话(session)提供在途中执行操作的一些方法。一般模式是,建立会话,此时会生成一张空图,在会话中添加节点和边,形成一张图,然后执行。

设备

设备(device)是指一块可以用来运算并且拥有自己的地址空间的硬件,如GPU和CPU。Tensorflow可以制定操作在哪个设备上执行。

with tf.Session() as sess:
    with tf.device("/gpu:1")
        #这里写运算过程
变量

变量(variable)是一种特殊的数据,它在图中有固定的位置,不像普通的张量那样可以流动。创建一个变量张量,使用tf.Variable()构造函数,这个构造函数需要一个初始值,初始值的形状和类型决定了这个变量的形状和类型。

state = tf.Variable(0,name="counter")

TensorFlow还提供了填充机制,可以在构建图的时候使用,tf.placeholder()临时代替任意操作的张量,在调用Session对象的run()方法去执行图时,使用填充数据作为调用参数,调用结束后,填充数据就消失。

input1 = tf.palceholder(tf.float32)
input2 = tf.palceholder(tf.float32)
output = tf.multiply(input1,input2)

with tf.Session() as sess:
    print sess.run([output],feed_dict={input1:[5.],input2:[3.]})

TensorFlow 技术解析与实战

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值