diff --git a/exercises/Jupyter notebook CVML.ipynb b/exercises/Jupyter notebook CVML.ipynb index 93a4bc0..14dfff3 100644 --- a/exercises/Jupyter notebook CVML.ipynb +++ b/exercises/Jupyter notebook CVML.ipynb @@ -2274,7 +2274,9 @@ "cell_type": "code", "execution_count": 89, "id": "e7880a56", - "metadata": {}, + "metadata": { + "scrolled": true + }, "outputs": [ { "data": { @@ -2312,6 +2314,73 @@ "# Week 6" ] }, + { + "cell_type": "markdown", + "id": "0b3f858b", + "metadata": {}, + "source": [ + "## Opdracht 6.1: ZTDL 6: Convolutional Neural Networks – MNIST" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "3eda82ac", + "metadata": {}, + "outputs": [], + "source": [ + "#maak een sequentieel model aan\n", + "model = Sequential() \n", + "\n", + "\"\"\"\n", + "Voeg een 2D convolution layer toe met 32 output filters, een kernel van 3x3\n", + "en een input shape van 28x28 grootte en 1 layer.\n", + "\"\"\"\n", + "model.add(Conv2D(32,(3,3),input_shape={28,28,1}))\n", + "\n", + "\"\"\"\n", + "Voeg een maxpool2d laag toe met een size van 2x2. Deze laag pakt het grootste\n", + "element uit een 2x2 vierkant in elke laag.\n", + "\"\"\"\n", + "model.add(MaxPool2D(pool_size=(2,2)))\n", + "\n", + "\"\"\"\n", + "Voeg een activation laag toe die de relu functie gebruikt. Deze functie maakt\n", + "van negatieve getallen een 0. Deze functie wordt uitgevoerd op de som van alle\n", + "waarden op de laagseizoen onder de kernel.\n", + "\"\"\"\n", + "model.add(Activation('relu'))\n", + "\n", + "\"\"\"\n", + "door een flatten laag toe te voegen worden alle lagen achter elkaar gezet\n", + "zodat deze makkelijker als input gebruikt kunnen worden voor de volgende lagen.\n", + "bron:\n", + "https://www.superdatascience.com/blogs/convolutional-neural-networks-cnn-step-3-flattening\n", + "\"\"\"\n", + "model.add(Flatten())\n", + "\n", + "\n", + "# voeg nog een relu activatie laag toe met 128.\n", + "model.add(Dense(128,activation='relu'))\n", + "\n", + "\"\"\"\n", + "Voeg een activatielaag toe die de softmax functie gebruikt zodat we een\n", + "percentage van categoriën krijgen als resultaat. Deze laag heeft 10 outputs\n", + "\"\"\"\n", + "model.add(Dense(10,activation='softmax'))\n", + "\n", + "\"\"\"\n", + "compileer het model met de categorical crossentropy loss function,\n", + "en de rmsprop als optimizer.\n", + "We willen de accuracy vergelijken door deze als metric mee te geven.\n", + "\n", + "TODO optimizer en loss uitleggen\n", + "\"\"\"\n", + "model.compile(loss='categorical_crossentropy',\n", + " optimizer='rmsprop',\n", + " metrics=['accuracy'])" + ] + }, { "cell_type": "markdown", "id": "ea5be5e2",