Die Firma Google beschäftigt sich sehr viel im Bereich KI und da im Speziellen mit Deep Learning Algorithmen. Dabei ist mal wiedre ein Abfallprodukt entstanden, das sie der Allgemeinheit zur Verfügung gestellt hat, nämlcih die Bibliothek tensorFlow. Mit Hilfe dieser Bibliothek realisiert Google viele Projekte im KI Bereich, wie verbesserte Übersetzung von Texten oder das Spiel GO. Mit letzterem haben Sie sogar bewiesen, dass sie ziemlich Erfolgreich in dem Thema unterwegs sind.
Will man sich nun etwas näher mit Deep Learning und Neuronalen Netzen auseinandersetzen, hilft einem diese Bibliothek weiter, da sie viele Algorithmen und Datenstrukturen bereits enthält. Ein mehrschichtiges Neuronales Netz kann durch eine Matrix repräsentiert werden. Komplexere Netze in einer dreidimensionalen Matrix, sogenannte Tensoren. Diese werden in tensorFlow in einer einem Grafen mit Operatoren verknüpft. Dabei entsprechen Knoten den (Tensor) Operatoren und Verbindungen dem Datenfluss. So entsteht der Name tensorFlow.
Um tensorFlow zum Laufen zu bekommen, muss erst einmal eine aktuelle Version von Python 3.6 installiert werden. Nach der Installation steht das python install program pip zur Verfügung. Sollte ein Proxy benötigt werden, so muss vorher die Umgebungsvariable https_proxy=http://web-proxy.mydomain.com:port gesetzt sein. Alle nachfolgenden Befehle werden in einer Shell ausgeführt. Sinnvoll ist es python Bibliotheken in einer virtuellen Umgebung zu installieren. Deswegen holen wir erstmal die Bibliothek pip install virtualenv. Nach deren Installation soll ein neues Arbeitsverzeichnis tf angelegt werden in dem wir arbeiten werden, richten es mit virtualenv tf ein und aktivieren es mit tf\Scripts\activate (Linux: source tf/bin/activate). In dem nun aktuellen Kommandofenster kann mit pip install tensorflow die Software tensorFlow installiert werden ohne andere Python Installationen zu beeinflussen. mit deactivate geht es wieder zurück. Mit pip install tensorflow-gpu wird eine GPU-Beschleunigte Variante installiert. Dies setzt eine installierte CUDA und CUDA Bibliothek und eine NVIDIA Grafikkarte vorraus.
Mit dem kleinen Python Programm kann man testen, ob tensorFlow funktioniert:
import tensorflow as tf hello = tf.constant('Hello World') sess = tf.Session() print(sess.run(hello))
Das Programm in eine Datei in tfTest.py speichern und in der Kommandozeile mit python tfTest.py starten. Wenn der Text Hallo World erscheint, ist tensorFlow richtig installiert worden.
Und nun noch ein kurzes Beispiel, wie man mit tensorFlow Handschriften klassifizieren kann. Dazu gibt es eine grosse Handschriftendatenbank MNIST, die zum Trainieren verwendet werden kann.
import tensorflow as tf from tensorflow.examples.tutorials.mnist import input_data NUM_STEPS = 1000 MINIBATCH_SIZE = 100 data = input_data.read_data_sets("data/", one_hot=True) x = tf.placeholder(tf.float32, [None, 784]) W = tf.Variable(tf.zeros([784, 10])) y_true = tf.placeholder(tf.float32, [None, 10]) y_pred = tf.matmul(x, W) cross_entropy = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits( logits=y_pred, labels=y_true)) gd_step = tf.train.GradientDescentOptimizer(0.5).minimize(cross_entropy) correct_mask = tf.equal(tf.argmax(y_pred, 1), tf.argmax(y_true, 1)) accuracy = tf.reduce_mean(tf.cast(correct_mask, tf.float32)) with tf.Session() as sess: # Train sess.run(tf.global_variables_initializer()) for _ in range(NUM_STEPS): batch_xs, batch_ys = data.train.next_batch(MINIBATCH_SIZE) sess.run(gd_step, feed_dict={x: batch_xs, y_true: batch_ys}) # Test ans = sess.run(accuracy, feed_dict={x: data.test.images, y_true: data.test.labels}) print ("Accuracy: {:.4}%".format(ans*100))
(Achtung: bei python bitte aufpassen, dass die Einrücktiefe einen Scope definiert, also was zusammengehört)
Links:
https://www.python.org/downloads/
https://de.wikipedia.org/wiki/Tensor
https://www.tensorflow.org/
https://github.com/tensorflow/tensorflow
http://developer.nvidia.com/cuda-downloads
http://docs.nvidia.com/cuda/cuda-installation-guide-microsoft-windows/index.html