[6.1]
This commit is contained in:
@@ -2274,7 +2274,9 @@
|
|||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": 89,
|
"execution_count": 89,
|
||||||
"id": "e7880a56",
|
"id": "e7880a56",
|
||||||
"metadata": {},
|
"metadata": {
|
||||||
|
"scrolled": true
|
||||||
|
},
|
||||||
"outputs": [
|
"outputs": [
|
||||||
{
|
{
|
||||||
"data": {
|
"data": {
|
||||||
@@ -2312,6 +2314,73 @@
|
|||||||
"# Week 6"
|
"# 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",
|
"cell_type": "markdown",
|
||||||
"id": "ea5be5e2",
|
"id": "ea5be5e2",
|
||||||
|
|||||||
Reference in New Issue
Block a user