TensorFlow - obliczenia rozproszone

W tym rozdziale skupimy się na tym, jak rozpocząć korzystanie z rozproszonego TensorFlow. Celem jest pomoc programistom w zrozumieniu podstawowych koncepcji rozproszonych TF, które się powtarzają, takich jak serwery TF. Użyjemy notatnika Jupyter do oceny rozproszonego TensorFlow. Implementacja obliczeń rozproszonych z TensorFlow jest opisana poniżej -

Step 1 - Importuj niezbędne moduły wymagane do przetwarzania rozproszonego -

import tensorflow as tf

Step 2- Utwórz klaster TensorFlow z jednym węzłem. Niech ten węzeł będzie odpowiedzialny za zadanie, które ma nazwę „pracownik” i które będzie obsługiwać jedno podejście na hoście lokalnym: 2222.

cluster_spec = tf.train.ClusterSpec({'worker' : ['localhost:2222']})
server = tf.train.Server(cluster_spec)
server.target

Powyższe skrypty generują następujące dane wyjściowe -

'grpc://localhost:2222'
The server is currently running.

Step 3 - Konfigurację serwera z odpowiednią sesją można obliczyć wykonując następujące polecenie -

server.server_def

Powyższe polecenie generuje następujące dane wyjściowe -

cluster {
   job {
      name: "worker"
      tasks {
         value: "localhost:2222"
      }
   }
}
job_name: "worker"
protocol: "grpc"

Step 4- Uruchom sesję TensorFlow z silnikiem wykonawczym będącym serwerem. Użyj TensorFlow, aby utworzyć serwer lokalny i używaćlsof aby dowiedzieć się, gdzie znajduje się serwer.

sess = tf.Session(target = server.target)
server = tf.train.Server.create_local_server()

Step 5 - Wyświetl urządzenia dostępne w tej sesji i zamknij odpowiednią sesję.

devices = sess.list_devices()
for d in devices:
   print(d.name)
sess.close()

Powyższe polecenie generuje następujące dane wyjściowe -

/job:worker/replica:0/task:0/device:CPU:0