刚开始接触tensorflow,用的tensorflow-gpu1.6.0,本文中关于Variable()函数的参数是从模块定义中翻译过来的,加了一些自己的理解。
除了Variable(),还有一个get_Variable(),下次加到这个里。
tf.variable()有如下11个参数:
initial_value:一个Tensor或可转换为Tensor的Python对象,它是Variable的初始值。除非“ validate_shape”设置为False,否则初始值必须具有指定的形状。也可以是不带参数的可调用对象,被调用时将返回初始值。在这种情况下,必须指定dtype。 (请注意,必须先将init_ops.py中的初始化函数绑定到形状,然后才能在此处使用。)
trainable:这个参数是用来判断你定义的这个变量是否要在训练过程中进行改变。默认值是True(跟着训练过程改变),默认会将该变量添加到图形集合GraphKeys.TRAINABLE_VARIABLES中。该集合用作Optimizer
类使用的默认变量列表。
collections:图形集合键的列表。新变量将添加到这些集合中。默认为[GraphKeys.GLOBAL_VARIABLES]
,即默认将定义的这些新变量添加到这个集合中。
validate_shape:如果为False,则允许使用未知形状的值初始化变量。如果不设置,默认值为“ True”,则必须知道“ initial_value”的形状。
caching_device:可选设备字符串,描述应将变量缓存在何处以进行读取。默认为变量的设备,如果不是’None’,则缓存在另一个设备上。典型的用途是在使用变量的Ops驻留在设备上缓存,通过Switch
和其他条件语句对副本进行重复数据删除。
name:变量的可选名称。默认为'Variable'
并自动获得唯一性。个人理解这个name是在tensorflow张量流图中的节点显示的名称。
variable_def:VariableDef
协议缓冲区。如果不是“ None”,则使用其内容重新创建Variable对象,并引用图中必须已存在的变量节点。该图没有改变.variable_def和其他参数是互斥的。
dtype:如果设置了,initial_value将被转换为给定的类型;如果为“None”,则将保留数据类型(如果“ initial_value”为张量),或由“ convert_to_tensor”决定。
Expected_shape:一个TensorShape(张量形状)。如果设置,则initial_value应该具有此形状。
import_scope:可选的“字符串”。要添加到“变量”的名称范围。仅在从协议缓冲区初始化时使用。
constraint(约束):由“优化器”更新后将应用于变量的可选投影函数(例如,用于实现范数约束或图层权重的值约束)。该函数必须将表示变量值的未投影张量作为输入,并返回投影值的张量(必须具有相同的形状)。在进行异步分布式训练时,使用约束并不安全。