Poprawki do zajęć 5.

This commit is contained in:
Tomasz Ziętkiewicz 2021-04-12 13:51:53 +02:00
parent d46d58fe06
commit 304d348990

View File

@ -2,33 +2,46 @@
"cells": [ "cells": [
{ {
"cell_type": "markdown", "cell_type": "markdown",
"metadata": {}, "metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [ "source": [
"# Biblioteki ML" "# Biblioteki Deep Learning"
] ]
}, },
{ {
"cell_type": "markdown", "cell_type": "markdown",
"metadata": {}, "metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [ "source": [
"## Plan na dziś\n", "## Plan na dziś\n",
"Przegląd bibliotek ML / DL:\n", "Przegląd bibliotek DL:\n",
"1. Tensorflow\n", "1. Tensorflow\n",
"2. Pytorch\n", "2. Pytorch\n",
"3. Caffe \n", "3. Caffe \n",
"3\n", "4. Caffe2\n",
"4. Deeplearning4J\n", "5. Deeplearning4J\n",
"5. CNTK (Microsoft Cognitive Toolkit)\n", "6. CNTK (Microsoft Cognitive Toolkit)\n",
"6. ML.NET\n", "7. ML.NET\n",
"7. MXNet\n", "8. MXNet\n",
"9. Porównanie\n", "9. Porównanie\n",
"10. Formaty wymiany modeli\n",
"\n", "\n",
"Zadanie" "Zadanie"
] ]
}, },
{ {
"cell_type": "markdown", "cell_type": "markdown",
"metadata": {}, "metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [ "source": [
"## Dynamiczne vs statyczne grafy obliczeniowe\n", "## Dynamiczne vs statyczne grafy obliczeniowe\n",
"\n", "\n",
@ -46,7 +59,11 @@
}, },
{ {
"cell_type": "markdown", "cell_type": "markdown",
"metadata": {}, "metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [ "source": [
"## 1. Tensorflow\n", "## 1. Tensorflow\n",
" - www.tensorflow.org\n", " - www.tensorflow.org\n",
@ -63,7 +80,11 @@
}, },
{ {
"cell_type": "markdown", "cell_type": "markdown",
"metadata": {}, "metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [ "source": [
"### 1.1 Keras\n", "### 1.1 Keras\n",
" - [keras.io](https://keras.io/)\n", " - [keras.io](https://keras.io/)\n",
@ -72,7 +93,11 @@
}, },
{ {
"cell_type": "markdown", "cell_type": "markdown",
"metadata": {}, "metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [ "source": [
"## Przykład IRIS w Tensorflow/Keras\n", "## Przykład IRIS w Tensorflow/Keras\n",
"https://www.tensorflow.org/tutorials/customization/custom_training_walkthrough" "https://www.tensorflow.org/tutorials/customization/custom_training_walkthrough"
@ -80,7 +105,11 @@
}, },
{ {
"cell_type": "markdown", "cell_type": "markdown",
"metadata": {}, "metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [ "source": [
"## 2. PyTorch\n", "## 2. PyTorch\n",
" - https://pytorch.org/\n", " - https://pytorch.org/\n",
@ -97,7 +126,11 @@
}, },
{ {
"cell_type": "markdown", "cell_type": "markdown",
"metadata": {}, "metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [ "source": [
"## 3. Caffe\n", "## 3. Caffe\n",
" - http://caffe.berkeleyvision.org/\n", " - http://caffe.berkeleyvision.org/\n",
@ -110,12 +143,16 @@
}, },
{ {
"cell_type": "markdown", "cell_type": "markdown",
"metadata": {}, "metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [ "source": [
"## 4. Caffe2\n", "## 4. Caffe2\n",
" - https://caffe2.ai/\n", " - https://caffe2.ai/\n",
" - Rozwijana przez Facebook\n", " - Rozwijana przez Facebook\n",
" - zmergowana do repozytorium Tensorflow\n", " - zmergowana do repozytorium PyTorch\n",
" - Open source\n", " - Open source\n",
" - Głównie zastosowania produkcyjne, w tym modele embedded (Caffe2go)\n", " - Głównie zastosowania produkcyjne, w tym modele embedded (Caffe2go)\n",
" - PyTorch: łatwość ekspoerymentowania, research. Caffe2: wydajność, urządzenia mobilne\n", " - PyTorch: łatwość ekspoerymentowania, research. Caffe2: wydajność, urządzenia mobilne\n",
@ -124,7 +161,11 @@
}, },
{ {
"cell_type": "markdown", "cell_type": "markdown",
"metadata": {}, "metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [ "source": [
"## 5. Deeplearning4J\n", "## 5. Deeplearning4J\n",
" - aka. DL4J, Deep Learning for Java\n", " - aka. DL4J, Deep Learning for Java\n",
@ -139,7 +180,11 @@
}, },
{ {
"cell_type": "markdown", "cell_type": "markdown",
"metadata": {}, "metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [ "source": [
"## 6. CNTK (Microsoft Cognitive Toolkit)\n", "## 6. CNTK (Microsoft Cognitive Toolkit)\n",
"- https://cntk.azurewebsites.net/\n", "- https://cntk.azurewebsites.net/\n",
@ -151,7 +196,11 @@
}, },
{ {
"cell_type": "markdown", "cell_type": "markdown",
"metadata": {}, "metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [ "source": [
"## 7. ML.NET\n", "## 7. ML.NET\n",
" - https://dot.net/ml\n", " - https://dot.net/ml\n",
@ -168,7 +217,11 @@
}, },
{ {
"cell_type": "markdown", "cell_type": "markdown",
"metadata": {}, "metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [ "source": [
"## 8. MXNet\n", "## 8. MXNet\n",
" - https://mxnet.apache.org/\n", " - https://mxnet.apache.org/\n",
@ -181,7 +234,11 @@
}, },
{ {
"cell_type": "markdown", "cell_type": "markdown",
"metadata": {}, "metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [ "source": [
"## 9. Porównanie\n", "## 9. Porównanie\n",
"|Framework |Autor |Licencja | Język | Interface |Uwagi |\n", "|Framework |Autor |Licencja | Język | Interface |Uwagi |\n",
@ -199,7 +256,11 @@
}, },
{ {
"cell_type": "markdown", "cell_type": "markdown",
"metadata": {}, "metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [ "source": [
"## 9. Formaty wymiany\n", "## 9. Formaty wymiany\n",
" - większość bibliotek używa innego formatu do zapisu modeli\n", " - większość bibliotek używa innego formatu do zapisu modeli\n",
@ -218,10 +279,16 @@
}, },
{ {
"cell_type": "markdown", "cell_type": "markdown",
"metadata": {}, "metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [ "source": [
"## Zadanie [20 pkt.]\n", "## Zadanie [20 pkt.]\n",
"\n", "\n",
"Termin: 2 tygodnie (25 IV)\n",
"\n",
"1. Wybierz jeden z frameworków ML (jeden z powyższych, ale może być też inny) i zaimplementuj w nim prostą sieć neuronową rozwiązującą wybrany problem (np regresji lub klasyfikacji) na wybranym na poprzednich zajęciach zbiorze. Możesz wzorować się (lub nawet skopiować) na jednym z tutotoriali do danego frameworka.\n", "1. Wybierz jeden z frameworków ML (jeden z powyższych, ale może być też inny) i zaimplementuj w nim prostą sieć neuronową rozwiązującą wybrany problem (np regresji lub klasyfikacji) na wybranym na poprzednich zajęciach zbiorze. Możesz wzorować się (lub nawet skopiować) na jednym z tutotoriali do danego frameworka.\n",
" - wczytaj dane trenujące z pliku [2 pkt.]\n", " - wczytaj dane trenujące z pliku [2 pkt.]\n",
" - wytrenuj na nich model [8 pkt.]\n", " - wytrenuj na nich model [8 pkt.]\n",
@ -238,6 +305,7 @@
} }
], ],
"metadata": { "metadata": {
"celltoolbar": "Slideshow",
"kernelspec": { "kernelspec": {
"display_name": "Python 3", "display_name": "Python 3",
"language": "python", "language": "python",