Multi-GPU-Ausbildung in Tensorflow (Data Parallelism), bei Verwendung feed_dict

Möchte ich für die Verwendung mehrerer GPUs zu trainieren, meine Tensorflow Modell unter Ausnutzung von datenparallelität.

Ich bin derzeit training ein Tensorflow Modell mit den folgenden Ansatz:

x_ = tf.placeholder(...)
y_ = tf.placeholder(...)
y = model(x_)
loss = tf.losses.sparse_softmax_cross_entropy(labels=y_, logits=y)
optimizer = tf.train.AdamOptimizer()
train_op = tf.contrib.training.create_train_op(loss, optimizer)
for i in epochs:
   for b in data:
      _ = sess.run(train_op, feed_dict={x_: b.x, y_: b.y})

Ich würde gerne nutzen von mehreren Grafikkarten zu trainieren, dieses Modell in einem Daten parallelisieren Art und Weise. also möchte ich spaltete meine batches in der Hälfte, und führen Sie jede Hälfte batch auf einem meiner zwei GPUs.

cifar10_multi_gpu_train scheint ein gutes Beispiel für das erstellen eines Verlusts, der zieht aus Graphen die Ausführung auf mehreren Grafikkarten, aber ich habe nicht gefunden eine, gute Beispiele zu tun, diese Art von training bei der Verwendung feed_dict und placeholder im Gegensatz zu einem data loader-queue.

UPDATE

Scheint: https://timsainb.github.io/multi-gpu-vae-gan-in-tensorflow.html vielleicht ein gutes Beispiel. Sie scheinen zu ziehen, in average_gradients aus cifar10_multi_gpu_train.py und erstellen Sie einen Platzhalter, die Sie dann in Scheiben schneiden, in die für jede der GPUs.
Ich denke, Sie müssen auch split create_train_op sich in drei Stufen: compute_gradients, average_gradients und dann apply_gradients.

  • Ich habe es geschafft, die Wiederverwendung der cifar Beispiel auf mnist. Es ist langsam und die Ergebnisse sind nicht spannend. github.com/normanheckscher/mnist-multi-gpu
  • Dein Fall sieht sehr ähnlich wie das Beispiel auf dieser Seite: github.com/vahidk/EffectiveTensorflow. Das zweite Beispiel für parallele sollte für Sie arbeiten.
  • könnten Sie bewegen Ihren Kommentar zu eine Antwort? Oder, Alex, haben Sie es geschafft, Ihre eigene Frage zu beantworten mit dem link von dir gefunden und wir sollten es in der Antwort?
Schreibe einen Kommentar