Tensorflow variable_scope中的partitioner参数是用来做什么的?

Ana*_*ari 5 python sharding partition tensorflow

tf.variable_scope具有文档中partitioner提到的参数。

据我了解,它用于分布式培训。谁能更详细地解释它的正确用法是什么?

Max*_*xim 5

巨大的tensorflow变量可以在多台机器上共享(请参阅本讨论)。分区程序是一种机制,张量流通过该机制将张量分配并组合回去,因此程序的其余部分不了解这些实现细节,并以通常的方式使用张量。

您可以通过tf.get_variable以下方式为每个变量指定分区程序:

如果提供了分区程序,则返回PartitionedVariable。以张量访问此对象将返回沿分区轴串联的碎片。

或者,您可以通过定义整个范围的默认分区程序tf.variable_scope,这将影响其中定义的所有变量。

查看可用的partitioners的tensorflow 1.3列表此页面。最简单的是tf.fixed_size_partitioner,它沿着指定的轴分割张量。这是一个示例用法(来自这个问题):

w = tf.get_variable("weights",                                        
                    weights_shape,                                    
                    partitioner=tf.fixed_size_partitioner(num_shards, axis=0), 
                    initializer=tf.truncated_normal_initializer(stddev=0.1))
Run Code Online (Sandbox Code Playgroud)