This commit is contained in:
Sem van der Hoeven
2021-06-09 11:53:08 +02:00
parent 2bed5951f2
commit da66813ec3

View File

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