我们可以使用multi-gpu traing来恢复由单个gpu训练的模型吗?

时间:2016-06-07 03:41:02

标签: tensorflow

当我使用multi gpu加载由单个训练的模型时,我收到此错误消息:

  

在检查点文件models_0606 / my_modle-50中找不到张量名称“test_mutli_gpu_1 / test_mutli_gpu_1 / Mean / avg”

这是关于图形代码的伪代码:

with tf.Graph().as_default():
  a = tf.get_variable()
for gpu_index in range(0,4):
  with tf.device('/gpu:%d' % gpu_index):
    with tf.name_scope('%s_%d' % ('test_mutli_gpu', gpu_index)) as scope:
      tf.get_variable_scope().reuse_variables()
      loss = caculateloss()
      grad = calculategard()
      grads.append(grad )
 grad = average_gradients(grads)
 apply_gradient_op = opt.apply_gradients(grads)
 variable_averages = tf.train.ExponentialMovingAverage(MOVING_AVERAGE_DECAY)
 variables_averages_op = variable_averages.apply(tf.trainable_variables())
 train_op = tf.group(apply_gradient_op, variables_averages_op)

任何人都知道我是否在多gpu训练中弄乱了什么 非常感谢〜

1 个答案:

答案 0 :(得分:0)

我找到了答案,通常会说如果您使用单GPU训练模型,则无法继续使用多GPU 训练您的模型。

  

loss_averages = tf.train.ExponentialMovingAverage(0.9,name =' loss')     loss_averages_op = loss_averages.apply(loss + [total_loss])

在我的caculateloss()函数中,此操作将生成一个带有关于 gpu_idx 的prename的变量 或者你可以对cifair_multi_train.py进行一些测试