集团站切换校区

验证码已发送,请查收短信

复制成功
微信号:togogoi
添加微信好友, 详细了解课程
已复制成功,如果自动跳转微信失败,请前往微信添加好友
打开微信
图标

业界新闻

当前位置:首页 > >业界新闻 > >

人工智能AI培训_TensorFlow 变量

发布时间: 2019-06-11 14:12:48

  人工智能AI培训_TensorFlow 变量

  1.变量概念
  变量维护图执行过程中的状态信息。如在神经网络中,用于标识w、b等系数。变量其实是Python中的Variable对象。TensorFlow中变量的初始值可以设置成随机数、常数或者是通过其他变量的初始值计算得到。
  在TensorFlow中,变量(Variable)是特殊的张量(Tensor),它的值可以是一个任何类型和形状的张量。与其他张量不同,变量存在于单个 session.run 调用的上下文之外,也就是说,变量存储的是持久张量,当训练模型时,用变量来存储和更新参数。变量包含张量 (Tensor)存放于内存的缓存区。建模时它们需要被明确地初始化,模型训练后它们必须被存储到磁盘。这些变量的值可在之后模型训练和分析是被加载。除此之外,在调用op之前,所有变量都应被显式地初始化过。
  2.创建变量
  当创建一个变量时,你将一个张量作为初始值传入构造函数Variable()。TensorFlow提供了一系列操作符来初始化张量,初始值是常量或是随机值。
  注意,所有这些操作符都需要你指定张量的shape。那个形状自动成为变量的shape。变量的shape通常是固定的,但TensorFlow提供了高级的机制来重新调整其行列数。
  # 创建两个变量.
  weights = tf.Variable(tf.random_normal([784, 200], stddev=0.35),name="weights")
  biases = tf.Variable(tf.zeros([200]), name="biases")
  调用tf.Variable()添加一些操作(Op, operation)到graph:
  一个Variable操作存放变量的值。
  一个初始化op将变量设置为初始值。这事实上是一个tf.assign操作.
  初始值的操作,例如示例中对biases变量的zeros操作也被加入了graph。
  tf.Variable的返回值是Python的tf.Variable类的一个实例。
  3.变量初始化
  创建好变量之后,变量必须初始化。变量的初始化必须在模型的其它操作运行之前先明确地完成。最简单的方法就是添加一个给所有变量初始化的操作,并在使用模型之前首先运行那个操作。你或者可以从检查点文件中重新获取变量值,详见下文。

  使用tf.initialize_all_variables()添加一个操作对变量做初始化。记得在完全构建好模型并加载之后再运行那个操作。

AI培训

  4.保存和加载
  最简单的保存和恢复模型的方法是使用tf.train.Saver对象。构造器给graph的所有变量,或是定义在列表里的变量,添加save和restoreops。saver对象提供了方法来运行这些ops,定义检查点文件的读写路径。
  5.检查点文件
  变量存储在二进制文件里,主要包含从变量名到tensor值的映射关系。
  当你创建一个Saver对象时,你可以选择性地为检查点文件中的变量挑选变量名。默认情况下,将每个变量Variable.name属性的值。

  6.保存变量

人工智能培训

  7.恢复变量

  用同一个Saver对象来恢复变量。注意,当你从文件中恢复变量时,不需要事先对它们做初始化。


  8.选择存储和恢复哪些变量
  如果你不给tf.train.Saver()传入任何参数,那么saver将处理graph中的所有变量。其中每一个变量都以变量创建时传入的名称被保存。
  有时候在检查点文件中明确定义变量的名称很有用。举个例子,你也许已经训练得到了一个模型,其中有个变量命名为"weights",你想把它的值恢复到一个新的变量"params"中。
  有时候仅保存和恢复模型的一部分变量很有用。再举个例子,你也许训练得到了一个5层神经网络,现在想训练一个6层的新模型,可以将之前5层模型的参数导入到新模型的前5层中。
  你可以通过给tf.train.Saver()构造函数传入Python字典,很容易地定义需要保持的变量及对应名称:键对应使用的名称,值对应被管理的变量。
  注意:
  如果需要保存和恢复模型变量的不同子集,可以创建任意多个saver对象。同一个变量可被列入多个saver对象中,只有当saver的restore()函数被运行时,它的值才会发生改变。

  如果你仅在session开始时恢复模型变量的一个子集,你需要对剩下的变量执行初始化op。


上一篇: H5培训_CSS选择器介绍

下一篇: Java培训_Java NIO的缓冲区GUAVA介绍

在线咨询 ×

您好,请问有什么可以帮您?我们将竭诚提供最优质服务!