tensorflow入门与实战,tensorflow入门教程

  tensorflow入门与实战,tensorflow入门教程

  tensorflow的运行机制属于“定义”和“运行”的分离。tensorflow定义的内容是在“graph”的容器中完成的。关于graph有几点需要理解。

  1.一个“图”代表一个计算任务。

  2.在模型运行过程中,"图形"是在会话中启动的。

  3.session将图的节点操作发布给CPU GPU,并提供OP方法。也就是说,在tensorflow中定义图的时候,只定义了图。图是静态的,定义完成后不会运行* *如果要执行图中的节点操作,需要使用run函数tf。Session.run,然后才能开始运行* *

  维护对象平台操作(示例):将张量流作为tf导入

  导入操作系统

  #忽略日志级别2以下的日志

  OS . environ[ TF _ CPP _ MIN _ LOG _ LEVEL ]= 2

  #上述代码用于忽略2级及以下级别的消息(1级是提示,2级是警告,3级是错误)。

  定义init_Check():

  #为temsor创建持久常数

  message=TF . constant( running ~ )

  #与一起使用以简化关闭流程

  用tf。会话()作为会话:

  #这里的输出是一个字节串。要删除字符串引号和“b”(意为byte,byte),只保留单引号内的内容,可以使用decode()方法。

  print(sess . run(message)。解码( UTF-8 )

  if __name__==__main__ :

  Init_Check()计算图:是一个有节点和边的网络。本节定义了要使用的所有数据,即张量对象(常量、变量和占位符),以及要执行的所有计算,即运算对象(OP)。每个节点可以有零个或多个输入,但只有一个输出。网络中的节点表示对象(张量和操作),边表示操作之间流动的张量。该图定义了神经网络的蓝图,但其中没有张量的相关值。为了建立一个计算图表,你需要定义所有的常数,变量和要执行的操作。比如两个向量相加的计算图:demo1: def v _ add():

  #定义图形的片段

  v1=TF . constant([1,2,3,4,5])

  v2=TF . constant([5,4,3,2,1])

  v_all=tf.add(v_1,v_2)

  用tf。会话()作为会话:

  print(sess.run(v_all))

  if __name__==__main__ :

  #会话运行图

  V_add()使用with而不手动关闭会话,隐式关闭demo 2:def v _ add _ interactive session():

  # tf。InteractiveSession会比tf更方便。会话会话使自己成为默认会话,需要关闭会话。

  sess=tf。交互式会话()

  v1=TF . constant([1,2,3,4,5])

  v2=TF . constant([5,4,3,2,1])

  d=tf.add(v_1,v_2)

  print(d.eval())

  sess.close()

  if __name__==__main__ :

  V_add_InteractiveSession()使用InteractiveSession创建的默认会话,需要关闭,但比Session方便。

  常量、变量和占位符

  张量流通常支持的数据类型:

  张量可以理解为一个N维矩阵。所有类型的数据,包括标量、向量和矩阵,都是张量的特殊类型。TensorFlow支持以下三种类型的tensorFlow:

  常数:常数是一个值不能改变的张量。变量:当会话中的量值需要更新时,它由变量表示。例如,在神经网络中,需要在训练期间更新权重,这可以通过将权重声明为变量来实现。变量在使用前需要显示和初始化。另外需要注意的是,计算图形的定义中存储了常数,每次加载图形时都会加载相关变量。换句话说,它们占用内存。另一方面,变量是分开存储的。它们可以存储在参数服务器上。占位符:用于在张量流图中输入值。它们可以和feed_dict一起使用来输入数据。在训练神经网络时,它们通常用于提供新的训练样本。在会话中运行计算图表时,可以将值分配给占位符。这样在构造计算图时就不需要真的输入数据了。请注意,占位符不包含任何数据,因此不需要初始化它们。常数:

  声明一个标量常数:t_1=tf.constant(4)可以用下面的代码声明一个[1,3]形式的常数向量:t_2=tf.constant([4,3,2])要创建一个所有元素为零的张量,可以使用tf.zeros()函数。该语句可以创建一个[M,N]形式的零元素矩阵。数据类型(dtype)可以是int32、float32等。TF . zeros([m,n],tf.dtype)例如:zero _ t=TF . zeros([2,3],tf.int32)也

  sess=tf。交互式会话()

  #生成初始值为1的矩阵,或初始值为0的矩阵

  Matrix1=tf.ones([9,9],tf.int32)

  Matrix4=tf.zeros([18,18],tf.int32)

  #用相同的形状克隆1或0的矩阵

  Matrix2=tf.ones_like(Matrix1)

  Matrix3=tf.zeros_like(Matrix2)

  print(sess.run(Matrix1))

  打印(sess.run(Matrix2))

  print(sess.run(Matrix3))

  打印(sess.run(Matrix4))

  sess.close()

  if __name__==__main__ :

  Matrix_likeMatrix()生成一个在一定范围内从初始值到终值排列的序列:对应的值是(stop-start)/(num-1)。示例:tf.linspace(开始、停止、数量)

  #num设置步长# range _ t=tf.linspace (2.0,5.0,5) # weget: [2.2.75 3.5 4.25 5。]

  从开始(默认值=0)以增量delta(默认值=1)生成一个数字序列,直到最终值(但不包括最终值):下面是一个示例:tf.range(start,limit,delta)示例:def Number_sequence():

  #只有一个参数时,表示增量为1,从0到n,有两个参数时,表示m~n,增量为1。三个参数中的最后一个表示增量。

  num_se=tf.range(10,50,4)

  用tf。会话()作为会话:

  print(sess.run(num_se))

  if __name__==__main__ :

  number _ sequence()转载请联系作者授权,否则将追究法律责任。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: