TensorFlow apply_gradients удаленно

Я пытаюсь разделить функцию минимизации на две машины. На одной машине я вызываю «compute_gradients», на другой - «apply_gradients» с градиентами, которые были отправлены по сети. Проблема в том, что вызов apply_gradients (...). Run (feed_dict), похоже, не работает, независимо от того, что я делаю. Я попытался вставить заполнители вместо тензорных градиентов для apply_gradients,

  variables = [W_conv1, b_conv1, W_conv2, b_conv2, W_fc1, b_fc1, W_fc2, b_fc2]
  loss = -tf.reduce_sum(y_ * tf.log(y_conv))
  optimizer = tf.train.AdamOptimizer(1e-4)
  correct_prediction = tf.equal(tf.argmax(y_conv,1), tf.argmax(y_,1))
  accuracy = tf.reduce_mean(tf.cast(correct_prediction, "float"))
  compute_gradients = optimizer.compute_gradients(loss, variables)

  placeholder_gradients = []
  for grad_var in compute_gradients:
     placeholder_gradients.append((tf.placeholder('float', shape=grad_var[1].get_shape()) ,grad_var[1]))
  apply_gradients = optimizer.apply_gradients(placeholder_gradients)

потом, когда я получу градиенты, которые я называю

  feed_dict = {}
  for i, grad_var in enumerate(compute_gradients):
        feed_dict[placeholder_gradients[i][0]] = tf.convert_to_tensor(gradients[i])
  apply_gradients.run(feed_dict=feed_dict)

Однако, когда я делаю это, я получаю

ValueError: установка элемента массива с последовательностью.

Это только последнее, что я пробовал, я также пробовал то же решение без заполнителей, а также ждал, чтобы создать операцию apply_gradients, пока не получу градиенты, что приводит к ошибкам несоответствия графа.

Любая помощь, в каком направлении я должен идти с этим?

Ответы на вопрос(1)

Ваш ответ на вопрос