官术网_书友最值得收藏!

Getting Variables with tf.get_variable()

If you define a variable with a name that has been defined before, then TensorFlow throws an exception. Hence, it is convenient to use the tf.get_variable() function instead of tf.Variable(). The function tf.get_variable() returns the existing variable with the same name if it exists, and creates the variable with the specified shape and initializer if it does not exist. For example: 

w = tf.get_variable(name='w',shape=[1],dtype=tf.float32,initializer=[.3])
b = tf.get_variable(name='b',shape=[1],dtype=tf.float32,initializer=[-.3])

The initializer can be a tensor or list of values as shown in above examples or one of the inbuilt initializers:

  • tf.constant_initializer
  • tf.random_normal_initializer
  • tf.truncated_normal_initializer
  • tf.random_uniform_initializer
  • tf.uniform_unit_scaling_initializer
  • tf.zeros_initializer
  • tf.ones_initializer
  • tf.orthogonal_initializer

In distributed TensorFlow where we can run the code across machines, the tf.get_variable() gives us global variables. To get the local variables TensorFlow has a function with similar signature: tf.get_local_variable().

Sharing or Reusing Variables: Getting already-defined variables promotes reuse. However, an exception will be thrown if the reuse flags are not set by using tf.variable_scope.reuse_variable() or tf.variable.scope(reuse=True).

Now that you have learned how to define tensors, constants, operations, placeholders, and variables, let's learn about the next level of abstraction in TensorFlow, that combines these basic elements together to form a basic unit of computation, the data flow graph or computational graph.

主站蜘蛛池模板: 珠海市| 永仁县| 虞城县| 泰兴市| 宁波市| 体育| 永清县| 玉田县| 南投市| 中西区| 兴业县| 河津市| 荆门市| 宜州市| 洛川县| 齐齐哈尔市| 柳林县| 政和县| 卢氏县| 黄大仙区| 克什克腾旗| 无为县| 驻马店市| 清流县| 北海市| 宣城市| 和平区| 庄浪县| 家居| 逊克县| 洛浦县| 长沙县| 湘阴县| 射阳县| 隆回县| 高阳县| 钟祥市| 龙门县| 琼海市| 百色市| 内江市|