Skip to content
Snippets Groups Projects
Commit 5b6143e1 authored by Christof Kaufmann's avatar Christof Kaufmann
Browse files

Update Keras and add some packages in Gym instructions

TensorFlow in Linux is now on the most current version, too, which
depends on Keras3. Keras3 also requires a new test script due to the
changed imports. This is changed in the windows and linux instructions.

In the linux instructions some packages for the data science lecture
have been added:

- pyogrio is now restricted to <0.8.0 until a new release is made,
because of https://github.com/geopandas/pyogrio/pull/443
- lxml is added for simple web scraping with pandas.
- fastparquet and zstandard for zstd support of pandas and geopandas.
- contextily for map backgrounds in geopandas non-interactive plots.
- networkx, pyvis and netgraph for graph based data handling.
- ipywidgets for GUI elements in Jupyter Notebooks.
parent 445bd6db
No related branches found
No related tags found
No related merge requests found
......@@ -124,12 +124,14 @@ Nun sollte die \texttt{base}-Environment aktiviert sein, was Sie auch am Prompt
\section{Conda-Umgebung}
Wir erstellen nun eine Umgebung namens \lstinline|ml| mit Python 3.10 und den benötigten Paketen. Falls Sie eine NVIDIA-GPU haben, ersetzen Sie \lstinline|tensorflow| durch \lstinline|tensorflow-gpu=2.10| und beachten auch die weiteren Hinweise in Abschnitt~\ref{sec:gpu}.
Wir erstellen nun eine Umgebung namens \lstinline|ml| mit Python 3.10 und den benötigten Paketen. Falls Sie eine NVIDIA-GPU haben, ersetzen Sie \lstinline|tensorflow-cpu| durch \lstinline|tensorflow-gpu| und beachten auch die weiteren Hinweise in Abschnitt~\ref{sec:gpu}.
\begin{lstlisting}[gobble=2, basicstyle=\ttfamily\footnotesize]
mamba create -n ml python=3.10 tensorflow ipympl tqdm mypy jupyter pystan \
mamba create -n ml python=3.10 tensorflow-cpu ipympl mypy jupyter pystan \
matplotlib seaborn scikit-learn openpyxl odfpy pyarrow \
geopandas descartes pyogrio spyder optuna plotly \
jax-jumpy moviepy shimmy-atari gymnasium-box2d
geopandas descartes 'pyogrio<0.8.0' optuna plotly tqdm \
jax-jumpy moviepy shimmy-atari gymnasium-box2d spyder \
ipywidgets notebook lxml fastparquet zstandard \
contextily networkx pyvis netgraph
\end{lstlisting}
Sie können die Umgebung jederzeit mit \lstinline|mamba activate ml| aktivieren und mit \lstinline|mamba deactivate| deaktivieren. Generell können Sie mit \lstinline|mamba create -n <ENVNAME> <PAKETE>| auch weitere Umgebungen einrichten und diese mit \lstinline|mamba activate <ENVNAME>| aktivieren.
......@@ -160,9 +162,8 @@ Installieren Sie nun in der Umgebung \lstinline|ml| noch Pakete, die es (noch) n
Installieren Sie auch \lstinline|ptxas| über das nvidia-Repository um eine Warnmeldung beim Importieren von TensorFlow zu vermeiden:
\begin{lstlisting}[gobble=2, basicstyle=\ttfamily\footnotesize]
mamba activate ml #*\color{cyan}\# \itshape sicherstellen, dass Sie in der 'ml' Umgebung sind*
mamba install --no-deps -c nvidia -c conda-forge tensorflow-gpu=2.10 cuda-nvcc
mamba install -c nvidia -c conda-forge cuda-nvcc
\end{lstlisting}
Falls bei der Installation von \lstinline|cuda-nvcc| der Fehler \texttt{[Errno 2] No such file or directory: '/.../miniforge/nvvm/bin'} auftritt, versuchen Sie \lstinline|/../miniforge/nvvm| zu löschen -- möglicherweise ist dies ein verwaister symbolischer Link -- und \lstinline|cuda-nvcc| erneut zu installieren.
\section{IDE}
......@@ -192,7 +193,7 @@ Spyder öffnet sich nun. Wenn Sie die Plots lieber in eigenständigen Fenster an
\includegraphics[width=\linewidth]{images/spyder-pref}
\vspace{-2em}
Laden Sie nun in Spyder das Testprogramm \texttt{mnistKeras.py} (\textattachfile{attachments/mnistKeras.py}{Anhang}|\href{https://gitlab.cvh-server.de/ckaufmann/install-python-tensorflow-gym/-/raw/master/attachments/mnistKeras.py?inline=false}{Web}).
Laden Sie nun in Spyder das Testprogramm \texttt{mnistKeras3.py} (\textattachfile{attachments/mnistKeras3.py}{Anhang}|\href{https://gitlab.cvh-server.de/ckaufmann/install-python-tensorflow-gym/-/raw/master/attachments/mnistKeras3.py?inline=false}{Web}).
Starten Sie das Skript durch Drücken auf \keystroke{F5} bzw.\ den grünen Play-Button oben in Werkzeugleise bzw.\ über das Menü \textit{Run} $\rightarrow$ \textit{Run}.
\vspace{-1ex}
......@@ -210,7 +211,7 @@ Starten Sie VS Code z.\,B.\ über die Kommandozeile mit:
\begin{lstlisting}[gobble=2, basicstyle=\ttfamily\footnotesize]
code
\end{lstlisting}
Speichern Sie das Testprogramm \texttt{mnistKeras.py} (\textattachfile{attachments/mnistKeras.py}{Anhang}|\href{https://gitlab.cvh-server.de/ckaufmann/install-python-tensorflow-gym/-/raw/master/attachments/mnistKeras.py?inline=false}{Web}) und klicken in VS Code auf Open Folder um das darüberliegende Verzeichnis zu öffnen. Öffnen Sie dann die Datei \texttt{mnistKeras.py}. Wie in der Abbildung dargestellt, installieren Sie die Python-Extension (Schritte 1–3) und wählen Sie den installierten Python-Interpreter (\lstinline|ml|) aus (Schritte 4–5). Falls Ihre Installation dort nicht auftaucht, wählen Sie bei \textit{Enter interpreter path...} den Installationspfad zur Binärdatei \lstinline|python| aus, also z.\,B.\ \texttt{\char`~/.local/opt/miniforge/envs/ml/bin/python}. Klicken Sie anschließend mit der rechten Maustaste irgendwo in das Editor-Fenster (Schritt 6):
Speichern Sie das Testprogramm \texttt{mnistKeras3.py} (\textattachfile{attachments/mnistKeras3.py}{Anhang}|\href{https://gitlab.cvh-server.de/ckaufmann/install-python-tensorflow-gym/-/raw/master/attachments/mnistKeras3.py?inline=false}{Web}) und klicken in VS Code auf Open Folder um das darüberliegende Verzeichnis zu öffnen. Öffnen Sie dann die Datei \texttt{mnistKeras3.py}. Wie in der Abbildung dargestellt, installieren Sie die Python-Extension (Schritte 1–3) und wählen Sie den installierten Python-Interpreter (\lstinline|ml|) aus (Schritte 4–5). Falls Ihre Installation dort nicht auftaucht, wählen Sie bei \textit{Enter interpreter path...} den Installationspfad zur Binärdatei \lstinline|python| aus, also z.\,B.\ \texttt{\char`~/.local/opt/miniforge/envs/ml/bin/python}. Klicken Sie anschließend mit der rechten Maustaste irgendwo in das Editor-Fenster (Schritt 6):
\vspace{-1em}
\noindent
......@@ -237,10 +238,11 @@ Dadurch erhalten Sie rechts eine Konsole in dem eine interaktive Python-Session
Hier ist kurz beschrieben, was das Testskript macht damit Sie einschätzen können, ob alles funktioniert hat. Das gilt sowohl für Spyder als auch für VS Code.
Rechts in der Konsole wird als Erstes die TensorFlow-Version ausgegeben, z.\,B.:
Rechts in der Konsole werden als Erstes die TensorFlow- und Keras-Version ausgegeben, z.\,B.:
\begin{lstlisting}
=========================
Tensorflow Version 2.10.0
TensorFlow Version 2.17.0
Keras Version 3.5.0
=========================
\end{lstlisting}
TensorFlow lädt danach einmalig die benötigten Daten herunter und trainiert anschließend ein neuronales Netz. Dabei wird der Trainingsfortschritt angezeigt. Anschließend wird die Genauigkeit auf der Testmenge ausgegeben und Beispielbilder geplottet. Wenn das Testprogramm durchläuft, ist TensorFlow erfolgreich installiert.
......
......@@ -52,7 +52,7 @@
\title{Installationsanleitung für Python mit OpenAI Gym für Windows}
\date{April 2024}
\date{August 2024}
\author{Christof Kaufmann}
......@@ -171,7 +171,7 @@ Spyder öffnet sich nun. Wenn Sie die Plots lieber in eigenständigen Fenster an
\includegraphics[width=\linewidth]{images/spyder-pref}
\vspace{-2em}
Laden Sie nun in Spyder das Testprogramm \texttt{mnistKeras.py} (\textattachfile{attachments/mnistKeras.py}{Anhang}|\href{https://gitlab.cvh-server.de/ckaufmann/install-python-tensorflow-gym/-/raw/master/attachments/mnistKeras.py?inline=false}{Web}).
Laden Sie nun in Spyder das Testprogramm \texttt{mnistKeras3.py} (\textattachfile{attachments/mnistKeras3.py}{Anhang}|\href{https://gitlab.cvh-server.de/ckaufmann/install-python-tensorflow-gym/-/raw/master/attachments/mnistKeras3.py?inline=false}{Web}).
Starten Sie das Skript durch Drücken auf \keystroke{F5} bzw.\ den grünen Play-Button oben in Werkzeugleise bzw.\ über das Menü \textit{Run} $\rightarrow$ \textit{Run}.
\vspace{-1ex}
......@@ -187,7 +187,7 @@ VS Code wird unabhängig von Mamba installiert und man wählt nachträglich die
Laden Sie es \href{https://code.visualstudio.com/docs/?dv=win64user}{hier} herunter und installieren es. Anschließend öffnen Sie VS Code. In VS Code drücken Sie \keystroke{Ctrl}+\keyshift+\keystroke P, suchen Sie die Einstellung \textit{Terminal: Select Default Profile} und wählen Sie \textit{Command Prompt}.
Speichern Sie das Testprogramm \texttt{mnistKeras.py} (\textattachfile{attachments/mnistKeras.py}{Anhang}|\href{https://gitlab.cvh-server.de/ckaufmann/install-python-tensorflow-gym/-/raw/master/attachments/mnistKeras.py?inline=false}{Web}) und klicken in VS Code auf Open Folder um das darüberliegende Verzeichnis zu öffnen. Öffnen Sie dann die Datei \texttt{mnistKeras.py}. Installieren Sie die Python-Extension (Schritte 1–3) und wählen Sie den installierten Python-Interpreter (\lstinline|ml|) aus (Schritte 4–5). Falls Ihre Installation dort nicht auftaucht, wählen Sie bei \textit{Enter interpreter path...} den Installationspfad zur Binärdatei \lstinline|python| aus, also z.\,B.\ \verb|~\miniforge\envs\ml\python.exe|. Klicken Sie anschließend mit der rechten Maustaste irgendwo in das Editor-Fenster:
Speichern Sie das Testprogramm \texttt{mnistKeras3.py} (\textattachfile{attachments/mnistKeras3.py}{Anhang}|\href{https://gitlab.cvh-server.de/ckaufmann/install-python-tensorflow-gym/-/raw/master/attachments/mnistKeras3.py?inline=false}{Web}) und klicken in VS Code auf Open Folder um das darüberliegende Verzeichnis zu öffnen. Öffnen Sie dann die Datei \texttt{mnistKeras3.py}. Installieren Sie die Python-Extension (Schritte 1–3) und wählen Sie den installierten Python-Interpreter (\lstinline|ml|) aus (Schritte 4–5). Falls Ihre Installation dort nicht auftaucht, wählen Sie bei \textit{Enter interpreter path...} den Installationspfad zur Binärdatei \lstinline|python| aus, also z.\,B.\ \verb|~\miniforge\envs\ml\python.exe|. Klicken Sie anschließend mit der rechten Maustaste irgendwo in das Editor-Fenster:
\vspace{-1em}
\noindent
......@@ -214,10 +214,11 @@ Dadurch erhalten Sie rechts eine Konsole in dem eine interaktive Python-Session
Hier ist kurz beschrieben, was das Testskript macht damit Sie einschätzen können, ob alles funktioniert hat. Das gilt sowohl für Spyder als auch für VS Code.
Rechts in der Konsole wird als Erstes die TensorFlow-Version ausgegeben, z.\,B.:
Rechts in der Konsole werden als Erstes die TensorFlow- und Keras-Version ausgegeben, z.\,B.:
\begin{lstlisting}
=========================
Tensorflow Version 2.10.1
TensorFlow Version 2.17.0
Keras Version 3.5.0
=========================
\end{lstlisting}
TensorFlow lädt danach einmalig die benötigten Daten herunter und trainiert anschließend ein neuronales Netz. Dabei wird der Trainingsfortschritt angezeigt. Anschließend wird die Genauigkeit auf der Testmenge ausgegeben und Beispielbilder geplottet. Wenn das Testprogramm durchläuft, ist TensorFlow erfolgreich installiert.
......
import tensorflow as tf
import keras
from keras.models import Sequential
from keras.layers import Conv2D, MaxPooling2D, Flatten, Dense
from keras.utils import to_categorical
from keras.datasets import mnist
print('=========================')
print('TensorFlow Version', tf.__version__)
print('Keras Version ', keras.__version__)
print('=========================')
(XTrain, yTrain), (XTest, yTest) = mnist.load_data()
XTrain = XTrain.reshape(60000, 28, 28, 1)
XTest = XTest.reshape(10000, 28, 28, 1)
XTrain = XTrain / 255
XTest = XTest / 255
YTrain = to_categorical(yTrain, 10)
YTest = to_categorical(yTest, 10)
myANN = Sequential()
myANN.add(Conv2D(9, kernel_size=(3, 3), activation='relu', kernel_initializer='he_uniform', input_shape=(28, 28, 1)))
myANN.add(MaxPooling2D(2))
myANN.add(Flatten())
myANN.add(Dense(20, activation='tanh'))
myANN.add(Dense(10, activation='softmax'))
myANN.compile(loss='categorical_crossentropy', optimizer='nadam', metrics=['accuracy'])
myANN.fit(XTrain, YTrain, batch_size=500, epochs=5, verbose=True)
mse, acc = myANN.evaluate(XTest, YTest, verbose=False)
print('Test loss:', mse, 'Test accuracy:', acc)
import matplotlib.pyplot as plt
fig = plt.figure()
for i in range(9):
ax = fig.add_subplot(3, 3, i + 1)
ax.imshow(XTrain[i].squeeze(), cmap='gray', interpolation='none')
ax.set_title(yTrain[i])
plt.tight_layout()
plt.show()
# import and load datasets to start the initial download
from sklearn.datasets import fetch_california_housing
data = fetch_california_housing(as_frame=True)
from keras.applications.vgg16 import VGG16
model = VGG16(weights='imagenet', include_top=True)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment