"*mit \"sinnvollen\" Parametern und verschiedenen Netzen/eigene Netze*\n",
"\n",
"**Wichtig**: Die sogenannte Lernrate, auch mit $\\alpha$ bezeichnet, muss positiv, aber kleiner als 1 sein (also ein Float/Bruchwert, z.B. 0.00002). Warum? Weil sonst der Step um die Kostenfunktion herum nicht hinunter findet. Siehe Erklärungen zB hier: [Stepping With a Learning Rate](https://github.com/fastai/fastbook/blob/master/04_mnist_basics.ipynb#Stepping-With-a-Learning-Rate) (genauer: Stepping With a Learning Rate). Es lohnt sich, dieses ganze Kapitel zu lesen (eigentlich das ganze Buch, wenn jemand die Zeit aufbringen kann).\n"
]
},
{
"cell_type": "markdown",
"id": "81033a68-4fb1-4161-8a55-e9f1a4c7d414",
"metadata": {},
"source": [
"Benötigter Aufwand: ca. 2h"
]
},
{
"cell_type": "markdown",
"id": "af0e3a7b-b64d-4051-b13e-530ad76e377a",
"metadata": {},
"source": [
"Benötigtes Material:\n",
"\n",
"* Daten\n",
"* Jupyter NB mit GPU Support"
]
},
{
"cell_type": "markdown",
"id": "e74dd05c-b811-49cb-bd56-8fb5b2732ecd",
"metadata": {},
"source": [
"Ablauf (Siehe auch vergangenes Notebook und allgemeiner Trainigsablauf):\n",
"\n",
"1. Daten einspeisen\n",
"2. Trainig starten\n",
"3. Interpretieren der Resultate"
]
},
{
"cell_type": "markdown",
"id": "d5f4f192-7333-4cf6-b252-884de728b6ac",
"metadata": {},
"source": [
"## Hilfestellung"
]
},
{
"cell_type": "markdown",
"id": "4a639150-8368-4779-9a00-929b589fe3ff",
"metadata": {},
"source": [
"Alle möglichen Netze anzeigen"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "702eee79-eb8b-4b02-bc09-e6b4322789a5",
"metadata": {},
"outputs": [],
"source": [
"import torchvision.models as torch_models\n",
"\n",
"[m for m in dir(torch_models) if m.lower() == m and not m.startswith('_')]"
]
},
{
"cell_type": "markdown",
"id": "de037366-fcac-4ee4-a518-b8b097d14519",
"metadata": {},
"source": [
"Von diesen sind nicht alle gleich nützlich.\n",
"\n",
"Um zu starten, probiere es mal mit:\n",
"\n",
"* resnet18\n",
"* mobilenet_v3_small\n",
"* mobilenet_v3_large\n",
"* mobilenetv3\n",
"* alexnet\n",
"\n",
"Schaue auf drei Sachen:\n",
"\n",
"* Geschwindigkeit des Durchlaufs (Abrechen und weniger Bilder wählen, wenn es zu lange dauert)\n",
"* Alpha-Werte\n",
"* Wie lange dauert es, bis die Werte \"Sinnvoll\" werden\n",
"\n",
"Welche Kombination gibt einen guten Wert in `valid_loss`? Alles über 1 ist unbrauchbar ;-)"
]
},
{
"cell_type": "markdown",
"id": "7f92e200-7a81-4313-9039-c58206d7a3fa",
"metadata": {},
"source": [
"Beispiel:\n",
"\n",
"```python\n",
"# ... dein dataloader, siehe vegangene Wochen\n",
*mit "sinnvollen" Parametern und verschiedenen Netzen/eigene Netze*
**Wichtig**: Die sogenannte Lernrate, auch mit $\alpha$ bezeichnet, muss positiv, aber kleiner als 1 sein (also ein Float/Bruchwert, z.B. 0.00002). Warum? Weil sonst der Step um die Kostenfunktion herum nicht hinunter findet. Siehe Erklärungen zB hier: [Stepping With a Learning Rate](https://github.com/fastai/fastbook/blob/master/04_mnist_basics.ipynb#Stepping-With-a-Learning-Rate)(genauer: Stepping With a Learning Rate). Es lohnt sich, dieses ganze Kapitel zu lesen (eigentlich das ganze Buch, wenn jemand die Zeit aufbringen kann).
"Typischerweise sind Bilder nicht für regression verwendet.\n",
"\n",
"Kannst du mit Hilfe von https://docs.fast.ai/ und https://github.com/fastai/fastbook hrausfinden, warum das \"trotzdem\" geht?"
]
},
{
"cell_type": "markdown",
"id": "5f7a1b29-e957-4069-8ab4-5feefe7ca2f5",
"metadata": {},
"source": [
"## Nachgeschaltete Netze\n",
"\n",
"Neben Regression mit Bilder gibt es eine weitere Option: Nachgeschaltete Netze, wo der Output eines Netzes den Input des anderen bildet.\n",
"\n",
"Wir werden dies noch anschauen, wie man das mit einer spezifischen Technik nutzen kann, als erste Stufe wird es Recognition brauchen, was man auch Image Segmentation \"nennt\". Du findest dazu hier einige Infos als Vorbereitung für später:\n",
"\n",
"https://github.com/fastai/fastbook/blob/master/01_intro.ipynb (Nur einen Abschnitt dazu, aber das reicht für diesmal :-) )"
Neben Regression mit Bilder gibt es eine weitere Option: Nachgeschaltete Netze, wo der Output eines Netzes den Input des anderen bildet.
Wir werden dies noch anschauen, wie man das mit einer spezifischen Technik nutzen kann, als erste Stufe wird es Recognition brauchen, was man auch Image Segmentation "nennt". Du findest dazu hier einige Infos als Vorbereitung für später:
https://github.com/fastai/fastbook/blob/master/01_intro.ipynb (Nur einen Abschnitt dazu, aber das reicht für diesmal :-) )