Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
CHILD INTELLIGENT ASSESSMENT TOOL
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
2020-046
CHILD INTELLIGENT ASSESSMENT TOOL
Commits
b9cfbd64
Commit
b9cfbd64
authored
4 years ago
by
Gunasinghe M.D.
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
CNN for shapes idenfication
parent
1a66f6c9
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
72 additions
and
0 deletions
+72
-0
cnn.py
cnn.py
+72
-0
No files found.
cnn.py
0 → 100644
View file @
b9cfbd64
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
@author: GUnasinghe M.D.
"""
# CNN classifier
# Building architecture of our CNN classifier
import
keras
from
keras.models
import
Sequential
from
keras.layers
import
Convolution2D
from
keras.layers
import
MaxPooling2D
from
keras.layers
import
Flatten
from
keras.layers
import
Dense
# Initialising the CNN
classifier
=
Sequential
()
# Step - 1 Convolution
classifier
.
add
(
Convolution2D
(
16
,
3
,
3
,
input_shape
=
(
28
,
28
,
3
),
activation
=
'relu'
))
# Step - 2 Pooling
classifier
.
add
(
MaxPooling2D
(
pool_size
=
(
2
,
2
)))
classifier
.
add
(
Convolution2D
(
32
,
3
,
3
,
activation
=
'relu'
))
classifier
.
add
(
MaxPooling2D
(
pool_size
=
(
2
,
2
)))
# Step - 3 Flattening
classifier
.
add
(
Flatten
())
# Step - 4 Full connection -> First layer input layer then hidden layer
# and last softmax layer
classifier
.
add
(
Dense
(
56
,
activation
=
'relu'
,
kernel_initializer
=
'uniform'
))
classifier
.
add
(
Dense
(
3
,
activation
=
'softmax'
,
kernel_initializer
=
'uniform'
))
# Compiling the CNN
classifier
.
compile
(
optimizer
=
'adam'
,
loss
=
'categorical_crossentropy'
,
metrics
=
[
'accuracy'
])
# Image Preprocessing
from
keras.preprocessing.image
import
ImageDataGenerator
train_datagen
=
ImageDataGenerator
(
rescale
=
1.
/
255
,
shear_range
=
0.2
,
zoom_range
=
0.2
,
horizontal_flip
=
True
)
test_datagen
=
ImageDataGenerator
(
rescale
=
1.
/
255
)
training_set
=
train_datagen
.
flow_from_directory
(
'shapes/train'
,
target_size
=
(
28
,
28
),
batch_size
=
1
,
class_mode
=
'categorical'
)
#X_images, y_labels = training_set.filenames, training_set.classes
test_set
=
test_datagen
.
flow_from_directory
(
'shapes/test'
,
target_size
=
(
28
,
28
),
batch_size
=
1
,
class_mode
=
'categorical'
)
# Logging the training of models
from
keras.callbacks
import
CSVLogger
,
EarlyStopping
csv_logger
=
CSVLogger
(
'log.csv'
,
append
=
True
,
separator
=
';'
)
early_stopping_monitor
=
EarlyStopping
(
patience
=
5
)
steps_per_epoch
=
len
(
training_set
.
filenames
)
# 300
validation_steps
=
len
(
test_set
.
filenames
)
# 90
model_info
=
classifier
.
fit_generator
(
training_set
,
steps_per_epoch
=
steps_per_epoch
,
epochs
=
25
,
validation_data
=
test_set
,
validation_steps
=
validation_steps
,
callbacks
=
[
csv_logger
,
early_stopping_monitor
])
classifier
.
save
(
"drawing_classification.h5"
)
# plot model history after each epoch
from
visulization
import
plot_model_history
plot_model_history
(
model_info
)
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment