
Google hat TensorFlow (www.tensorflow.org), eine Open-Source-Bibliothek für maschinelles Lernen, die im vergangenen November im Bereich der KI große Aufmerksamkeit erregte. TensorFlow ist auch als „Maschinelles Lernen für jedermann“ bekannt, da es selbst für Personen ohne viel Erfahrung im maschinellen Lernen relativ einfach anzuwenden ist. Wir freuen uns, heute bekannt geben zu können, dass TensorFlow jetzt auf der Rescale-Plattform verfügbar ist. Das bedeutet, dass Sie lernen können, Ihre eigenen Modelle für maschinelles Lernen mit TensorFlow zu erstellen und zu trainieren – ganz einfach im Webbrowser. In diesem Blogbeitrag erkläre ich Ihnen, wie das geht.
Beginnen wir mit einem einfachen Fall
Wir beginnen mit dem ersten offiziellen TensorFlow-Tutorial: MNIST für ML-Anfänger. Es wird erläutert, was MNIST ist und wie es mit Softmax-Regression, einer grundlegenden Methode des maschinellen Lernens, in TensorFlow modelliert und trainiert wird. Hier konzentrieren wir uns darauf, wie der Job eingerichtet und auf der Rescale-Plattform ausgeführt wird.
Sie können das Python-Skript in einem lokalen Editor erstellen mnist_for_beginners.py:
# Laden Sie die MNIST-Daten von tensorflow.examples.tutorials.mnist import input_data mnist = input_data.read_data_sets("MNIST_data/", one_hot=True) # Definieren Sie das Modell import tensorflow as tf x = tf.placeholder(tf.float32, [None, 784]) W = tf.Variable(tf.zeros([784, 10])) b = tf.Variable(tf.zeros([10])) y = tf.nn.softmax(tf.matmul(x, W) + b) # Trainieren Sie das Modell y_ = tf.placeholder(tf.float32, [None, 10]) cross_entropy = -tf.reduce_sum(y_*tf.log(y)) train_step = tf.train.GradientDescentOptimizer(0.01).minimize(cross_entropy) init = tf.initialize_all_variables() sess = tf.Session() sess.run(init) für i im Bereich(1000): batch_xs, batch_ys = mnist.train.next_batch(100) sess.run(train_step, feed_dict={x: batch_xs, y_: batch_ys}) # Auswertung des Modells correct_prediction = tf.equal(tf.argmax(y,1), tf.argmax(y_,1)) accuracy = tf.reduce_mean(tf.cast(correct_prediction, tf.float32)) print(sess.run(accuracy, feed_dict={x: mnist.test.images, y_: mnist.test.labels}))
Das obige Skript fügt lediglich alle Snippets zusammen. Jetzt müssen wir es auf der GPU-Hardware von Rescale ausführen.
Zuerst müssen Sie ein Konto erstellen. Wenn Sie noch keins haben, klicken Sie auf werden auf dieser Seite erläutert um eins zu erstellen.
Wenn Sie sich die mühsame Schritt-für-Schritt-Einrichtung des Jobs ersparen möchten, können Sie auch auf werden auf dieser Seite erläutert um den Tutorial-Job anzuzeigen und in Ihr eigenes Konto zu klonen.
Melden Sie sich nach der Kontoregistrierung bei Rescale an und klicken Sie oben links auf die Schaltfläche „+ Neuer Job“, um einen neuen Job zu erstellen.
Klicken Sie auf „Von diesem Computer hochladen“ und laden Sie Ihr Python-Skript auf Rescale hoch.
Klicken Sie auf „Weiter“, um zur Seite „Softwareeinstellungen“ zu gelangen, und wählen Sie TensorFlow aus der Softwareliste aus. Derzeit ist 0.71 die einzige unterstützte Version von Rescale. Wählen Sie daher diese Version und geben Sie „python ./mnist_for_beginners.py“ in das Befehlsfeld ein. Klicken Sie auf „Weiter“, um zur Seite „Hardwareeinstellungen“ zu gelangen.
Wählen Sie in den Hardwareeinstellungen den Kerntyp Jade und wählen Sie 4 Kerne aus. Dieser Job ist nicht sehr rechenintensiv, daher wählen wir die minimal zulässige Anzahl an Kernen. Wir können die Nachbearbeitung für dieses Beispiel überspringen und auf der Überprüfungsseite auf „Senden“ klicken, um den Job zu übermitteln.

Das Starten des Servers dauert 4–5 Minuten und die Ausführung des Jobs 1 Minute. Während der Job ausgeführt wird, können Sie die Dateien im Arbeitsverzeichnis mit der Live-Tailing-Funktion von Rescale überwachen.
Nach Abschluss des Auftrags können Sie die Dateien auf der Ergebnisseite anzeigen. Werfen wir einen Blick auf process_output.log, die Ausgabe des hochgeladenen Python-Skripts. In der dritten Zeile von unten können wir bestätigen, dass die Genauigkeit 91.45 % beträgt.
Ein fortgeschritteneres Modell
Im zweiten TensorFlow-Tutorial wird ein fortgeschritteneres Modell mit einem mehrschichtigen Faltungsnetzwerk erstellt, um die Genauigkeit auf 99.32 % zu erhöhen.
Um dieses erweiterte Modell auf Rescale auszuführen, können Sie einfach den Vorgang des ersten wiederholen und das Python-Skript durch das neue Modell aus dem Tutorial ersetzen. Sie können auch einen vorhandenen Job anzeigen und klonen von werden auf dieser Seite erläutert.
Leistungsbeschleunigungstest für einzelne GPUs im Vergleich zu mehreren GPUs
Wenn Sie mehr als eine GPU auf Ihrem Rechner haben, kann TensorFlow alle GPUs für eine bessere Leistung nutzen. In diesem Abschnitt führen wir einen Leistungsbenchmark auf einem Rechner mit einer K520-GPU im Vergleich zu einem Rechner mit vier K4-GPUs durch und testen Leistungssteigerungen.
Das CIFAR10 Faltungs-Neuronales Netz Beispiel wird als Benchmark verwendet. Aus dem folgenden Ergebnis können wir ersehen, dass bei der vierfachen Anzahl an GPUs die pro Sekunde verarbeiteten Beispiele nur die 4-fache Leistung einer einzelnen GPU erreichen.
Arbeit voraus
TensorFlow hat gerade eine neue verteilte Version (v0.8) am 4, das die Arbeitslast auf die GPUs mehrerer Maschinen verteilen kann. Es wäre sehr interessant, die Leistung in einem Multi-Node-Multi-GPU-Cluster zu sehen. Zuvor werden wir den Prozess zum Starten eines Multi-Node-Multi-GPU-Clusters mit TensorFlow-Unterstützung auf Rescale so einfach wie möglich gestalten.
Importieren Sie diesen Job in Ihr Konto
