TensorFlow apply_gradients remote

Ich versuche, die Minimierungsfunktion auf zwei Maschinen aufzuteilen. Auf einem Rechner rufe ich "compute_gradients" auf, auf einem anderen "apply_gradients" mit Verläufen, die über das Netzwerk gesendet wurden. Das Problem ist, dass das Aufrufen von apply_gradients (...). Run (feed_dict) nicht funktioniert, egal was ich tue. Ich habe versucht, Platzhalter anstelle der Tensorverläufe für apply_gradients einzufügen.

  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)

dann später, wenn ich die Farbverläufe erhalte, die ich anrufe

  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)

Allerdings, wenn ich das tue, bekomme ich

ValueError: Festlegen eines Array-Elements mit einer Sequenz.

Dies ist nur das Neueste, was ich ausprobiert habe. Ich habe dieselbe Lösung auch ohne Platzhalter ausprobiert und darauf gewartet, die apply_gradients-Operation zu erstellen, bis ich die Verläufe erhalte, was zu nicht übereinstimmenden Diagrammfehlern führt.

Hilfe, in welche Richtung ich damit gehen soll?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage