Tensorflow学习笔记

1.基本概念

Tensorflow是一个编程系统,使用(graphs)来表示计算任务,(graphs)中的节点称之为op(operation),一个op获得0个或多个Tensor,执行计算,产生0个或多个Tensor。Tensor看作是一个n维的数组或列表。图必须在会话(Session)里被启动。

  • 使用图(graphs)来表示计算任务
  • 在被称之为会话(Session)的上下文(context)中执行图
  • 使用tensor表示数据
  • 通过变量(Variable)维护状态
  • 使用feed和fetch可以为任意的操作赋值或者从其中获取数据

2.创建图,启动图

(1)传统编程思维:只是定义了这个op,但是并没有执行!

Tensor Flow首先创建一个骨架图,其中包含所有组件。此时,没有实际的数据流入,也没有计算发生。只有在执行时,当我们运行会话时,该数据进入图并进行计算。这样考虑了整个图的结构,可以让计算变得更有效率。

import tensorflow as tf

m1=tf.constant([[3,3]])   #创建一个常量op
m2=tf.constant([[2],[3]])
product=tf.matmul(m1,m2)    #创建一个矩阵乘法op,把m1和m2传入
print (product)    #这里将输出一个Tensor。

(2)启动默认图,进行计算

#定义一个会话1,启动默认图
sess=tf.Session()  #旧版本
#调用sees的run方法来执行矩阵乘法op
#run(product)触发了图中3个op
result=sess.run(product)    
print(result) #输出结果:[[15]]
sess.close()

如上写法,必须关闭会话。使用with则无需关闭。

with语句

它使用由上下文管理器(具有特殊方法函数的对象)定义的方法来包装块的执行—上下文管理器有专用的方法函数,设置一个代码块的.__enter__()和退出块的.__ exit __()

with tf.Session() as sess:
    result=sess.run(product)
    print(result)

(3)定义一个新的图,将它设置为默认图

  • tf.Graph()创建一个新的计算图,表示为Tensor Flow对象。
  • 可以通过使用tf.get_default_graph()来检查当前设置的默认图。
  • 对于给定的节点,我们可以通过使用<node> .graph属性查看它所关联的图
  • 使用with语句和as_default()命令返回一个上下文管理器,使该计算图成为默认图。当使用多个图时,它会派上用场。
g = tf.Graph()
a = tf.constant(5)
print(a.graph is g)
print(a.graph is tf.get_default_graph())

with g.as_default():
 	b = tf.constant(5)

3.变量的使用

优化过程的作用是调整某些给定模型的参数。为此,Tensor Flow使用称为变量的特殊对象。

与其他每次运行会话时“重新填充”数据的Tensor对象不同,变量在图中保持固定状态。这很重要,因为它们的当前状态可能会影响下一次迭代中它们的变化。像其他Tensor一样,变量可以用作图中其他操作的输入。

使用变量分两个阶段完成。首先我们调用tf.Variable()函数来创建一个变量并定义它将被初始化的值。然后,我们必须通过使用tf.global_variables_initializer()方法运行会话来显式执行初始化操作,该方法为“变量”分配内存并设置其初始值。

(1)定义并初始化一个变量:tf.global_variables_initializer()

import t
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值