tf.variable_scope
有一个partitioner
参数,如documentation中所述。
据我了解,它用于分布式培训。任何人都可以更详细地解释它的正确用法吗?
答案 0 :(得分:4)
可以在多台机器上分割巨大的张量流变量(参见Plunker)。分区器是一种机制,张量流通过该机制分配和组装张量,因此程序的其余部分不知道这些实现细节,并且以通常的方式使用张量。
您可以通过this discussion指定每个变量的分区程序:
如果提供了分区程序,则返回PartitionedVariable。以Tensor的形式访问此对象将返回沿分区轴连接的分片。
或者您通过tf.get_variable
为整个范围定义默认分区程序,这将影响其中定义的所有变量。
请参阅tf.variable_scope
上tensorflow 1.3中的可用分区列表。最简单的是tf.fixed_size_partitioner
,它沿指定轴分割张量。以下是一个示例用法(来自this page):
w = tf.get_variable("weights",
weights_shape,
partitioner=tf.fixed_size_partitioner(num_shards, axis=0),
initializer=tf.truncated_normal_initializer(stddev=0.1))