Merge pull request 'Poprawki do zajęć 5.' (#7) from tzietkiewicz/aitech-ium:master into master

Reviewed-on: AITech/aitech-ium#7
This commit is contained in:
Tomasz Zietkiewicz 2021-04-12 13:52:39 +02:00
commit 503c13cdf7

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",