我有大量需要初始化的变量(2000)。Tensorflow 需要很长时间来初始化这些变量,这对我来说是一个障碍。我在分布式模式下运行 tf(在 graph.
with tf.variable_scope("f_counts"):
per_ps_features = [] #A List of list
for node in xrange(num_workers):
with tf.device("/job:ps/task:{}".format(node % num_ps)):
f = [] #List of features per parameter server
for ps_node in xrange(num_workers):
f.append(tf.get_variable(initializer=tf.constant([], dtype=tf.string), dtype=tf.string, validate_shape=False, trainable=False, name='ps_'+str(node)+'features_'+str(ps_node))) # unique features per node
per_ps_features.append(f)
可以看到,每个 PS 都有一个变量对应于 PS 服务器的数量。这使得以下非常慢(有时一个小时才能创建会话)
with tf.train.MonitoredTrainingSession(master=server.target, is_chief= is_chief, config=tf.ConfigProto(log_device_placement=False)) as session:
说时有解决方法或替代方法num_workers = 200
吗?