http://www.tu-ilmenau.de

Logo TU Ilmenau


Ansprechpartner

Univ.-Prof. Dr.-Ing. Horst-Michael Groß

Head of department

Telefon +49 3677 692858

E-Mail senden

INHALTE

Python Installation

1 Einführung

Die nachfolgende Seite gibt eine Hilfestellung zur Installation und Einrichtung der für die vorlesungs- und übungsbegleitenden Beispiele notwendigen Softwarekomponenten. In allen Beispielen wird die Programmiersprache Python verwendet.

Python ist eine universelle Programmiersprache, welche durch ihre einfache und MATLAB-ähnliche Syntax besonders leicht zu erlernen ist. Der Funktionsumfang der Sprache wird in sogennanten Paketen (engl. Packages) organisiert. Obwohl Python bereits über eine sehr umfassende Standardbibliothek mit vielen Paketen verfügt, existieren zahlreiche frei verfügbare Pakete, mit denen die Funktionalitäten der Sprache zusätzlich erweitert werden können.

Für die begleitenden Beispiele werden neben der Installation von Python die folgenden zusätzlichen Pakete benötigt:

  • NumPy (https://docs.scipy.org/doc/numpy/reference/)
    NumPy dient der Organisation und Manipulation von Daten in Arrays (Vektoren, Matrizen, mehrdimensionale Objekte). Weiterhin stellt NumPy performante Implementierungen für numerische Berechnungen zur Verfügung.
  • SciPy (https://www.scipy.org/)
    SciPy basiert auf NumPy und ergänzt dieses um vordefinierte Funktionen zur statistischen Auswertung, Optimierung, Integration, linearen Algebra und zur Signal- und Bildverarbeitung.
  • Scikit-learn (http://scikit-learn.org/stable/)
    Scikit-learn umfasst zahlreiche Algorithmen aus dem Bereich des maschinellen Lernens zur Lösung von Klassifikations-, Regressions- und Gruppierungsaufgaben (Clustering).
  • OpenCV (https://docs.opencv.org/3.4.3/)
    OpenCV umfasst zahlreiche Algorithmen zur Bildverarbeitung aus dem Bereich "Computer Vision".
  • Matplotlib (https://matplotlib.org/2.0.2/index.html)
    Matplotlib stellt MATLAB-ähnliche Funktionalitäten zur Visualisierung in Form von Plots zur Verfügung.
  • Spyder (https://github.com/spyder-ide/spyder)
    Spyder ist eine Python-Entwicklungsumgebung mit großer Ähnlichkeit zu MATLAB. So umfasst diese Entwicklungsumgebung neben einem Editor ebenfalls eine interaktive Konsole mit Variablen-Explorer und einen Bereich zum Anzeigen der zu einer Funktion zugehörigen Entwicklerdokumentation.
    Für erfahrene Python-Entwickler könnte ebenfalls PyCharm interessant sein.
  • Jupyter Notebook (http://jupyter.org/)
    Jupyter dient dem Erzeugen und Anzeigen von interaktiven Dokumenten (Notebooks) mit eingebetteten Python-Skripten. Im Kontext der Lehrveranstaltungen wird es genutzt um Python Code mit Erläuterungen und/oder Aufgabenbeschreibungen bereitzustellen.

Für die Lehrveranstaltung "Neuroinformatik" (Übung, NICHT für das Praktikum) werden zusätzlich die folgenden Pakete benötigt:

  • Tensorflow (https://www.tensorflow.org/)
    Tensorflow ist eine von Google entwickelte Bibliothek für maschinelles Lernen. Im Unterschied zu scikit-learn ist Tensorflow speziell für den Einsatz im Bereich Deep Learning konzipiert und unterstützt symbolische Berechnungen sowie die Ausführung auf Grafikkarten (GPUs) zur Rechenbeschleunigung. 
  • Keras (https://keras.io/)
    Keras stellt ein einfach zu bedienendes Interface zum Erzeugen und Trainieren von Neuronalen Netzwerken zur Verfügung. 

Für die Lehrveranstaltung "Lernen in kognitiven Systemen" wird zusätzlich folgendes Pakete benötigt:

  • Tensorflow (https://www.tensorflow.org/)
    Tensorflow ist eine von Google entwickelte Bibliothek für maschinelles Lernen. Im Unterschied zu scikit-learn ist Tensorflow speziell für den Einsatz im Bereich Deep Learning konzipiert und unterstützt symbolische Berechnungen sowie die Ausführung auf Grafikkarten (GPUs) zur Rechenbeschleunigung.
  • Gym (https://gym.openai.com/)
    Gym stellt verschiedene Environments für das Lernen von Agenten im Bereich des Reinforcement Learning zur Verfügung.
  • atari-py (https://github.com/openai/atari-py/)
    atari-py stellt einen Atari 2600 Emulator für verschiedene Gym Environments zur Verfügung.

Um die Installation von Python und der beschriebenen Pakete so einfach wie möglich zu gestalten, wird die Installation der Python-Distribution Anaconda empfohlen, welche für die gängigsten Betriebssysteme bereits viele der benötigten Pakete enthält. Die Installation wird im nachfolgenden Abschnitt erklärt.

2 Installation

Nachfolgend wird die Installation unter Linux, MacOS und Windows beschrieben.

Da die Installation von Python und der oben beschreibenen Pakete sehr komplex und betriebssystemspezifisch ist, wird ausdrücklich empfohlen die Python-Distribution Anaconda (Python Version 3.7) zu verwenden.

1. Download von Anaconda (für Python 3.7 !!!)

Die Python-Distribution Anaconda kann unter folgendem Link heruntergeladen werden: https://www.anaconda.com/download/#all

2. Installation von Anaconda
Während der Installation müssen Sie sich entscheiden (Frage unter Linux, Checkbox unter Windows, unter MacOS automatisch gesetzt), ob Sie Anaconda zur Pfad-Variable hinzufügen wollen. Für Einsteiger in die Python-Programmierung empfehlen wir diese Frage mit "Ja" (Haken setzen unter Windows) zu beantworten. Wenn Sie diese Frage mit Nein beantworten (Haken nicht setzen unter Windows), müssen Sie vor jeder Verwendung von Python darauf achten, dass die Anaconda-Distribution genutzt wird:

  • Linux: Pfad-Variable temporär in der aktuellen Konsole um den Anaconda-Pfad als Präfix ergänzen
  • Windows: Verwendung von "Anaconda Prompt" (Programm im Startmenü) als Konsole

3. Installation verbleibender Pakete
Die nachfolgenden Pakete sind nicht in der Anaconda-Distribution enthalten und müssen daher im Anschluss manuell installiert werden:
OpenCV:

  • Öffnen Sie eine Konsole ("Anaconda Prompt" unter Windows)
  • Führen Sie folgenden Befehl aus:
    pip install opencv-python==3.4.3.*

Tensorflow und Keras:

  • Öffnen Sie eine Konsole ("Anaconda Prompt" unter Windows)
  • Führen Sie folgenden Befehl aus:
    pip install tensorflow==1.13.1
    (Keras wird als Teil von Tensorflow mit installiert)
  • Hinweis: Wenn Sie über eine NVIDIA-GPU verfügen, können Sie Tensorflow ebenfalls mit GPU-Unterstützung installieren. Weitere Details finden Sie unter: https://www.tensorflow.org/install/gpu

Gym:

  • Öffnen Sie eine Konsole ("Anaconda Prompt" unter Windows)
  • Führen Sie folgenden Befehl aus:
    pip install gym==0.12.1

atari-py (Linux und macOS):

  • Öffnen Sie eine Konsole
  • Führen Sie folgenden Befehl aus:
    pip install atari-py==0.1.15

atari-py (Windows):

3 Erste Schritte

Testen der Python-Umgebung
Die korrekte Einrichtung der Python-Umgebung können Sie über das folgende Beispielskript testen.
Öffnen Sie "Spyder" (Linux/MacOS: über Konsole über den Befehl: "sypder"; Windows: über Startmenü, Meldung der Firewall mit Zugriff zulassen bestätigen) und kopieren Sie die folgenden Zeilen in den Editor:

# Pakete importieren
import cv2
import matplotlib.pyplot as plt
from sklearn.datasets import load_sample_image
# Beispielbild laden
img = load_sample_image('flower.jpg')
img = cv2.resize(img, (100, 50))
# Bild darstellen
plt.figure()
plt.imshow(img)
plt.show()

Führen Sie das Skript anschließend über Run -> Run (F5) aus (Einstellungen unverändert lassen).

Die korrekte Installation der zusätzlichen Pakete für die Lehrveranstaltung "Neuroinformatik" können Sie analog mit folgenden Zeilen testen: 

# Pakete importieren
import matplotlib.pyplot as plt
import numpy as np
from sklearn.datasets import make_classification
from tensorflow.keras.layers import Input, Dense
from tensorflow.keras.models import Model
from tensorflow.keras.utils import to_categorical
# Datensatz fuer Klassifikationsaufgabe erstellen
x, y = make_classification(n_features=2, n_redundant=0, n_informative=2)
# Neuronales Netz erstellen und trainieren
nw_in = Input(shape=(2,))
nw_out = Dense(2, activation='softmax')(Dense(10, activation='relu')(nw_in))
model = Model(inputs=nw_in, outputs=nw_out)
model.compile('sgd', 'categorical_crossentropy')
model.fit(x, to_categorical(y), epochs=10, batch_size=10)
# Netzwerkausgabe visualisieren
plt.figure()
x1, x2 = np.meshgrid(np.linspace(x[:, 0].min(), x[:, 0].max(), 25),
                     np.linspace(x[:, 1].min(), x[:, 1].max(), 25))
y_nw = model.predict(np.hstack([x1.reshape(-1, 1), x2.reshape(-1, 1)]))
plt.pcolormesh(x1, x2, np.argmax(y_nw, axis=1).reshape(25, 25), alpha=0.5)
# Daten visualisieren
plt.scatter(x[:, 0], x[:, 1], c=y, edgecolor='k')
plt.show()

Öffnen von Jupyter Notebooks
Zum Betrachten und Bearbeiten der bereitgestellten Notebooks muss zuerst ein lokaler Jupyter-Notebook-Server gestartet werden. Anschließend können Notebooks mit einem beliebigen Webbrowser angezeigt, verändert und ausgeführt werden.

Zum Starten des Servers öffnen Sie "Jupyter Notebook" (Linux/MacOS: über Konsole über den Befehl: "jupyter notebook ~", Windows: über Startmenü). Nun sollte sich sich der eingestellte Standardbrowser automatisch öffnen und die Ordnerstruktur ihres Benutzerverzeichnisses anzeigen, mit deren Hilfe Sie zum gewünschten Notebook navigieren können. Öffnet sich der Browser nicht, muss der in der Konsole dargestellte Link manuell in einen Browser kopiert werden.

Hinweis:
Notebooks können auch direkt gestartet werden indem der vollständige Pfad in der Konsole angegeben wird. Öffnen Sie hierzu eine Konsole ("Anaconda Prompt" unter Windows) und führen Sie den folgenden Befehl aus: "jupyter notebook pfad/zum/notebook/name.ipynb" beziehnungsweise unter Windows: "jupyter notebook pfad\zum\notebook\name.ipynb"

Hinweise für MATLAB-Umsteiger
Insbesondere für MATLAB-Umsteiger sind die folgenden beiden Anleitungen konzipiert, welche einen guten ersten Einstieg in Python mit NumPy geben:

4 Bei Problemen

Bekannte Probleme

Fehlermeldung:
Wenn Sie Tensorflow importieren wollen, erscheint: "ModuleNotFoundError: No module named '_pywrap_tensorflow_internal'" 
Lösung:
Höchstwahrscheinlich ist der Prozessor, den Sie verwenden, zu alt für aktuellste Version von Tensorflow. Deinstallieren Sie die aktuelle Version und installieren Sie anschließend Version 1.5.0 indem Sie in einer Konsole ("Anaconda Prompt" unter Windows) folgende Befehle hintereinander ausführen: "pip uninstall tensorflow" gefolgt von "pip install tensorflow==1.5.0".

Fehlermeldung (Windows):
Wenn Sie Anaconda Promt öffnen, erscheint: "Unable to create process using 'C:\Users\Mein Benutzername\Anaconda3\python.exe "C:\Users\Mein Benutzername\Anaconda3\Scripts\conda-script.py" shell.cmd.exe activate activate "C:\Users\Mein Benutzername\Anaconda3"'"
Lösung:
In Ihrem Benutzernamen befindet sich ein Leerzeichen, welches Grund für das Problem ist. Deinstallieren Sie Anaconda und installieren Sie es in einen Ornder außerhalb Ihres Benutzerordners erneut.

Fehlermeldung:
"No module named PyQt5" oder "python - unknown command"
Lösung:
Prüfen Sie bitte, ob die Pfad Umgebungsvariable korrekt gesetzt ist.

Fehlermeldung (Windows):
"This application failed to start because it could not find or load the Qt platform plugin"
Lösung:
Öffnen Sie bitte eine Anaconda Prompt. Geben Sie "conda install qt" ein und beantworten Sie die folgende Frage mit ja.

Fehlermeldung:
Bei der Installation zusätzlicher Pakete erhalten Sie die Fehlermeldung "[Paketname] is not a supported wheel on this platform" oder "Could not find a version that satisfies the requirement [Paketname] (from versions: ) No matching distribution found for [Paketname]"
Lösung:
Überprüfen Sie bitte, ob Sie Anaconda für Python 3 (genau Python 3.6) installiert haben. Diese Fehlermeldung deutet auf eine Python 2 Installation hin.

 

Bei Problemen

Bei Fragen und Problemen wenden Sie sich bitte für: