tf.get_variable和tf.Variable函数差别
2018-01-07 22:04
357 查看
在tensorflow中提供了tf.get_variable函数来创建或者获取变量。
当tf.get_variable用于创建变量时,则与tf.Variable的功能基本相同。
由以上可见,相同点:通过两函数创建变量的过程基本一样,且tf.variable函数调用时提供的维度(shape)信息以及初始化方法(initializer)的参数和tf.Variable函数调用时提供的初始化过程中的参数基本类似。
不同点:两函数指定变量名称的参数不同,对于tf.Variable函数,变量名称是一个可选的参数,通过name="v"的形式给出
而tf.get_variable函数,变量名称是一个必填的参数,它会根据变量名称去创建或者获取变量。
##############################################################################
先通过tf.variable_scope生成一个上下文管理器,并指明需求的变量在这个上下文管理器中,就可以直接通过tf.get_variable获取已经生成的变量。
在上下文管理器中已经生成一个v的变量,若想通过tf.get_variable函数获取其变量,则可以通过reuse参数的设定为True来获取(可以将reuse按照字面意思理解,重用)
并且tf.variable_scope只能获取已经创建过的变量。
如果tf.variable_scope函数使用参数reuse=None或者reuse=False创建上下文管理器,则tf.get_variable函数可以创建新的变量。但不可以创建已经存在的变量即为同名的变量。
当tf.get_variable用于创建变量时,则与tf.Variable的功能基本相同。
#定义的基本等价 v = tf.get_variable("v",shape=[1],initializer.constant_initializer(1.0)) v = tf.Variable(tf.constant(1.0,shape=[1]),name="v")
由以上可见,相同点:通过两函数创建变量的过程基本一样,且tf.variable函数调用时提供的维度(shape)信息以及初始化方法(initializer)的参数和tf.Variable函数调用时提供的初始化过程中的参数基本类似。
不同点:两函数指定变量名称的参数不同,对于tf.Variable函数,变量名称是一个可选的参数,通过name="v"的形式给出
而tf.get_variable函数,变量名称是一个必填的参数,它会根据变量名称去创建或者获取变量。
##############################################################################
先通过tf.variable_scope生成一个上下文管理器,并指明需求的变量在这个上下文管理器中,就可以直接通过tf.get_variable获取已经生成的变量。
#通过tf.variable_scope函数控制tf.get_variable函数来获取以及创建过的变量 with tf.variable_scope("zyy"):#zyy的命名空间 v=tf.get_variable("v",[1],initializer=tf.constant_initializer(1.0)) #在zyy的命名空间内创建名字为v的变量
with tf.variable_scope("zyy"): v=tf.get_variable("v",[1]) #通过tf.get_variable函数创建v的变量,则会失败,由于在zyy空间中已经生成了一个v的变量
在上下文管理器中已经生成一个v的变量,若想通过tf.get_variable函数获取其变量,则可以通过reuse参数的设定为True来获取(可以将reuse按照字面意思理解,重用)
with tf.variable_scope("zyy",reuse=True): v1=tf.get_variable("v",[1]) print v==v1 #输出为True
并且tf.variable_scope只能获取已经创建过的变量。
如果tf.variable_scope函数使用参数reuse=None或者reuse=False创建上下文管理器,则tf.get_variable函数可以创建新的变量。但不可以创建已经存在的变量即为同名的变量。
相关文章推荐
- tf.get_variable中变量的重复利用,reuse关键字
- Tensorflow函数——tf.variable_scope()
- 简单Tensorflow线性拟合类及tf.get_variable()使用示例
- tensorflow的共享变量,tf.Variable(),tf.get_variable(),tf.Variable_scope(),tf.name_scope()联系与区别
- tf.variable和tf.get_Variable以及tf.name_scope和tf.variable_scope的区别
- tensorflow共享变量, tf.get_variable() 和 tf.Varibele()的区别
- tensorflow 笔记12:函数区别:placeholder,variable,get_variable,参数共享
- tf.get_variable() vs tf.Variable(),tf.name_scope() vs tf.variable_scope()
- tf.get_variable 和tf.variable_scope
- tensorflow variable_scope,tf.name_scope, tf.variable, tf.get_varible
- tensorflow中使用tf.variable_scope和tf.get_variable的ValueError
- ValueError: Variable E_conv0/w/Adam/ does not exist, or was not created with tf.get_variable().
- tf.Variable()与tf.get_variable()对比
- tf.get_variable()
- tensorflow中tf.Variable() 方法和 tf.get_variable()方法的区别
- tf.variable_scope()和tf.name_scope(),tf.Variable()和tf.get_variable()
- #tensorflow学习笔记#理解tf.get_variable
- 【tensorflow 学习】tf.get_variable()和tf.Variable()的区别
- 图变量作用域tf.get_variable
- tf.get_variable() vs tf.Variable(),tf.name_scope() vs tf.variable_scope()