Artificial Intelligence project that aim was to classification images of flowers into five different kinds: daisy, dandelion, rose, sunflower and tuilp.
The data collection is dowloaded from https://www.kaggle.com/alxmamaev/flowers-recognition, contains 4242 images of flowers and is based on the data flicr, google images, yandex images. The pictures are divided into five classes: daisy, dandelion, rose, sunflower and tuilp and there about 800 photos for each class.
read_data.py
script that allows to read the data and prints some random images.
reprocess_data.py
script that allows to reprocess the data and split it into train, test and validation sets.
logistic.py
file with function that creates logistic regression with parameter C found using GridSearchCV.
svm_linear.py
file contains function that creates SVM model with linear kernel and parameter C found using GridSearchCV.
svm_poly.py
file contains function that creates SVM model with polynomial kernel and parameter C found using GridSearchCV.
random_forest.py
file contains function that creates Random Forest Classifier model with parameters found using GridSearchCV.
model1.py
file contains function that creates neural network model with following structure:
Model: "sequential"
_________________________________________________________________
Layer (type) Output Shape Param #
=================================================================
flatten (Flatten) (None, 49152) 0
_________________________________________________________________
dense (Dense) (None, 1024) 50332672
_________________________________________________________________
dense_1 (Dense) (None, 512) 524800
_________________________________________________________________
dense_2 (Dense) (None, 5) 2565
=================================================================
model2.py
file contains function that creates neural network model with following structure:
Model: "sequential"
_________________________________________________________________
Layer (type) Output Shape Param #
=================================================================
flatten (Flatten) (None, 49152) 0
_________________________________________________________________
batch_normalization (BatchNo (None, 49152) 196608
_________________________________________________________________
activation (Activation) (None, 49152) 0
_________________________________________________________________
dense (Dense) (None, 1024) 50332672
_________________________________________________________________
batch_normalization_1 (Batch (None, 1024) 4096
_________________________________________________________________
activation_1 (Activation) (None, 1024) 0
_________________________________________________________________
dense_1 (Dense) (None, 512) 524800
_________________________________________________________________
batch_normalization_2 (Batch (None, 512) 2048
_________________________________________________________________
activation_2 (Activation) (None, 512) 0
_________________________________________________________________
dense_2 (Dense) (None, 128) 65664
_________________________________________________________________
batch_normalization_3 (Batch (None, 128) 512
_________________________________________________________________
activation_3 (Activation) (None, 128) 0
_________________________________________________________________
dense_3 (Dense) (None, 5) 645
=================================================================
model3.py
file contains function that creates neural network model with following structure:
Model: "sequential"
_________________________________________________________________
Layer (type) Output Shape Param #
=================================================================
conv2d (Conv2D) (None, 128, 128, 64) 1792
_________________________________________________________________
max_pooling2d (MaxPooling2D) (None, 64, 64, 64) 0
_________________________________________________________________
batch_normalization (BatchNo (None, 64, 64, 64) 256
_________________________________________________________________
dropout (Dropout) (None, 64, 64, 64) 0
_________________________________________________________________
flatten (Flatten) (None, 262144) 0
_________________________________________________________________
dense (Dense) (None, 1024) 268436480
_________________________________________________________________
dropout_1 (Dropout) (None, 1024) 0
_________________________________________________________________
batch_normalization_1 (Batch (None, 1024) 4096
_________________________________________________________________
dense_1 (Dense) (None, 512) 524800
_________________________________________________________________
dropout_2 (Dropout) (None, 512) 0
_________________________________________________________________
batch_normalization_2 (Batch (None, 512) 2048
_________________________________________________________________
dense_2 (Dense) (None, 5) 2565
=================================================================
model5.py
file contains function that creates neural network model with following structure:
Model: "sequential"
_________________________________________________________________
Layer (type) Output Shape Param #
=================================================================
conv2d (Conv2D) (None, 128, 128, 32) 2432
_________________________________________________________________
max_pooling2d (MaxPooling2D) (None, 64, 64, 32) 0
_________________________________________________________________
conv2d_1 (Conv2D) (None, 64, 64, 64) 18496
_________________________________________________________________
max_pooling2d_1 (MaxPooling2 (None, 32, 32, 64) 0
_________________________________________________________________
conv2d_2 (Conv2D) (None, 32, 32, 96) 55392
_________________________________________________________________
max_pooling2d_2 (MaxPooling2 (None, 16, 16, 96) 0
_________________________________________________________________
conv2d_3 (Conv2D) (None, 16, 16, 96) 83040
_________________________________________________________________
max_pooling2d_3 (MaxPooling2 (None, 8, 8, 96) 0
_________________________________________________________________
flatten (Flatten) (None, 6144) 0
_________________________________________________________________
dense (Dense) (None, 512) 3146240
_________________________________________________________________
activation (Activation) (None, 512) 0
_________________________________________________________________
dense_1 (Dense) (None, 5) 2565
=================================================================
model6.py
file contains function that creates neural network model with following structure:
Model: "sequential"
_________________________________________________________________
Layer (type) Output Shape Param #
=================================================================
conv2d (Conv2D) (None, 126, 126, 16) 448
_________________________________________________________________
max_pooling2d (MaxPooling2D) (None, 63, 63, 16) 0
_________________________________________________________________
conv2d_1 (Conv2D) (None, 61, 61, 32) 4640
_________________________________________________________________
max_pooling2d_1 (MaxPooling2 (None, 30, 30, 32) 0
_________________________________________________________________
conv2d_2 (Conv2D) (None, 28, 28, 64) 18496
_________________________________________________________________
max_pooling2d_2 (MaxPooling2 (None, 14, 14, 64) 0
_________________________________________________________________
flatten (Flatten) (None, 12544) 0
_________________________________________________________________
dense (Dense) (None, 128) 1605760
_________________________________________________________________
dense_1 (Dense) (None, 5) 645
=================================================================
model7.py
file contains function that creates neural network model with following structure:
Model: "sequential"
_________________________________________________________________
Layer (type) Output Shape Param #
=================================================================
conv2d (Conv2D) (None, 128, 128, 32) 2432
_________________________________________________________________
max_pooling2d (MaxPooling2D) (None, 64, 64, 32) 0
_________________________________________________________________
conv2d_1 (Conv2D) (None, 64, 64, 64) 18496
_________________________________________________________________
max_pooling2d_1 (MaxPooling2 (None, 32, 32, 64) 0
_________________________________________________________________
conv2d_2 (Conv2D) (None, 32, 32, 96) 55392
_________________________________________________________________
max_pooling2d_2 (MaxPooling2 (None, 16, 16, 96) 0
_________________________________________________________________
conv2d_3 (Conv2D) (None, 16, 16, 96) 83040
_________________________________________________________________
max_pooling2d_3 (MaxPooling2 (None, 8, 8, 96) 0
_________________________________________________________________
flatten (Flatten) (None, 6144) 0
_________________________________________________________________
dense (Dense) (None, 512) 3146240
_________________________________________________________________
activation (Activation) (None, 512) 0
_________________________________________________________________
dense_1 (Dense) (None, 5) 2565
=================================================================
model8.py
file contains function that creates neural network model with following structure:
Model: "sequential"
Layer (type) Output Shape Param #
=================================================================
conv2d (Conv2D) (None, 128, 128, 64) 1792
_________________________________________________________________
module_wrapper (ModuleWrappe (None, 64, 64, 64) 0
_________________________________________________________________
batch_normalization (BatchNo (None, 64, 64, 64) 256
_________________________________________________________________
dropout (Dropout) (None, 64, 64, 64) 0
_________________________________________________________________
conv2d_1 (Conv2D) (None, 64, 64, 128) 73856
_________________________________________________________________
module_wrapper_1 (ModuleWrap (None, 32, 32, 128) 0
_________________________________________________________________
batch_normalization_1 (Batch (None, 32, 32, 128) 512
_________________________________________________________________
dropout_1 (Dropout) (None, 32, 32, 128) 0
_________________________________________________________________
conv2d_2 (Conv2D) (None, 32, 32, 128) 147584
_________________________________________________________________
module_wrapper_2 (ModuleWrap (None, 16, 16, 128) 0
_________________________________________________________________
batch_normalization_2 (Batch (None, 16, 16, 128) 512
_________________________________________________________________
dropout_2 (Dropout) (None, 16, 16, 128) 0
_________________________________________________________________
conv2d_3 (Conv2D) (None, 16, 16, 256) 295168
_________________________________________________________________
module_wrapper_3 (ModuleWrap (None, 8, 8, 256) 0
_________________________________________________________________
batch_normalization_3 (Batch (None, 8, 8, 256) 1024
_________________________________________________________________
dropout_3 (Dropout) (None, 8, 8, 256) 0
_________________________________________________________________
conv2d_4 (Conv2D) (None, 8, 8, 512) 1180160
_________________________________________________________________
module_wrapper_4 (ModuleWrap (None, 4, 4, 512) 0
_________________________________________________________________
batch_normalization_4 (Batch (None, 4, 4, 512) 2048
_________________________________________________________________
dropout_4 (Dropout) (None, 4, 4, 512) 0
_________________________________________________________________
flatten (Flatten) (None, 8192) 0
_________________________________________________________________
dense (Dense) (None, 1024) 8389632
_________________________________________________________________
dropout_5 (Dropout) (None, 1024) 0
_________________________________________________________________
batch_normalization_5 (Batch (None, 1024) 4096
=================================================================
model9.py
file contains function that creates neural network model with following structure:
Model: "sequential"
_________________________________________________________________
Layer (type) Output Shape Param #
=================================================================
conv2d (Conv2D) (None, 128, 128, 64) 1792
_________________________________________________________________
module_wrapper (ModuleWrappe (None, 64, 64, 64) 0
_________________________________________________________________
batch_normalization (BatchNo (None, 64, 64, 64) 256
_________________________________________________________________
dropout (Dropout) (None, 64, 64, 64) 0
_________________________________________________________________
conv2d_1 (Conv2D) (None, 64, 64, 128) 73856
_________________________________________________________________
module_wrapper_1 (ModuleWrap (None, 32, 32, 128) 0
_________________________________________________________________
batch_normalization_1 (Batch (None, 32, 32, 128) 512
_________________________________________________________________
dropout_1 (Dropout) (None, 32, 32, 128) 0
_________________________________________________________________
conv2d_2 (Conv2D) (None, 32, 32, 128) 147584
_________________________________________________________________
module_wrapper_2 (ModuleWrap (None, 16, 16, 128) 0
_________________________________________________________________
batch_normalization_2 (Batch (None, 16, 16, 128) 512
_________________________________________________________________
dropout_2 (Dropout) (None, 16, 16, 128) 0
_________________________________________________________________
conv2d_3 (Conv2D) (None, 16, 16, 512) 590336
_________________________________________________________________
module_wrapper_3 (ModuleWrap (None, 8, 8, 512) 0
_________________________________________________________________
batch_normalization_3 (Batch (None, 8, 8, 512) 2048
_________________________________________________________________
dropout_3 (Dropout) (None, 8, 8, 512) 0
_________________________________________________________________
flatten (Flatten) (None, 32768) 0
_________________________________________________________________
dense (Dense) (None, 1024) 33555456
_________________________________________________________________
dropout_4 (Dropout) (None, 1024) 0
_________________________________________________________________
batch_normalization_4 (Batch (None, 1024) 4096
_________________________________________________________________
activation (Activation) (None, 1024) 0
_________________________________________________________________
dense_1 (Dense) (None, 512) 524800
_________________________________________________________________
dropout_5 (Dropout) (None, 512) 0
_________________________________________________________________
batch_normalization_5 (Batch (None, 512) 2048
_________________________________________________________________
activation_1 (Activation) (None, 512) 0
_________________________________________________________________
dense_2 (Dense) (None, 5) 2565
=================================================================
model10.py
file contains function that creates neural network model with following structure:
Model: "sequential"
_________________________________________________________________
Layer (type) Output Shape Param #
=================================================================
conv2d (Conv2D) (None, 128, 128, 16) 448
_________________________________________________________________
module_wrapper (ModuleWrappe (None, 64, 64, 16) 0
_________________________________________________________________
batch_normalization (BatchNo (None, 64, 64, 16) 64
_________________________________________________________________
dropout (Dropout) (None, 64, 64, 16) 0
_________________________________________________________________
conv2d_1 (Conv2D) (None, 64, 64, 32) 4640
_________________________________________________________________
module_wrapper_1 (ModuleWrap (None, 32, 32, 32) 0
_________________________________________________________________
batch_normalization_1 (Batch (None, 32, 32, 32) 128
_________________________________________________________________
dropout_1 (Dropout) (None, 32, 32, 32) 0
_________________________________________________________________
conv2d_2 (Conv2D) (None, 32, 32, 64) 18496
_________________________________________________________________
module_wrapper_2 (ModuleWrap (None, 16, 16, 64) 0
_________________________________________________________________
batch_normalization_2 (Batch (None, 16, 16, 64) 256
_________________________________________________________________
dropout_2 (Dropout) (None, 16, 16, 64) 0
_________________________________________________________________
conv2d_3 (Conv2D) (None, 16, 16, 128) 73856
_________________________________________________________________
module_wrapper_3 (ModuleWrap (None, 8, 8, 128) 0
_________________________________________________________________
batch_normalization_3 (Batch (None, 8, 8, 128) 512
_________________________________________________________________
dropout_3 (Dropout) (None, 8, 8, 128) 0
_________________________________________________________________
conv2d_4 (Conv2D) (None, 8, 8, 128) 147584
_________________________________________________________________
module_wrapper_4 (ModuleWrap (None, 4, 4, 128) 0
_________________________________________________________________
batch_normalization_4 (Batch (None, 4, 4, 128) 512
_________________________________________________________________
dropout_4 (Dropout) (None, 4, 4, 128) 0
_________________________________________________________________
conv2d_5 (Conv2D) (None, 4, 4, 256) 295168
_________________________________________________________________
module_wrapper_5 (ModuleWrap (None, 2, 2, 256) 0
_________________________________________________________________
batch_normalization_5 (Batch (None, 2, 2, 256) 1024
_________________________________________________________________
dropout_5 (Dropout) (None, 2, 2, 256) 0
_________________________________________________________________
conv2d_6 (Conv2D) (None, 2, 2, 512) 1180160
_________________________________________________________________
module_wrapper_6 (ModuleWrap (None, 1, 1, 512) 0
_________________________________________________________________
batch_normalization_6 (Batch (None, 1, 1, 512) 2048
_________________________________________________________________
dropout_6 (Dropout) (None, 1, 1, 512) 0
_________________________________________________________________
flatten (Flatten) (None, 512) 0
_________________________________________________________________
dense (Dense) (None, 1024) 525312
_________________________________________________________________
dropout_7 (Dropout) (None, 1024) 0
_________________________________________________________________
batch_normalization_7 (Batch (None, 1024) 4096
_________________________________________________________________
activation (Activation) (None, 1024) 0
_________________________________________________________________
dense_1 (Dense) (None, 5) 5125
=================================================================
.
├── README.md
├── read_data.py
├── reprocess_data.py
├── show_data.py
├── model1.py
├── model2.py
├── model3.py
├── model4.py
├── model5.py
├── model6.py
├── model7.py
├── model8.py
├── model9.py
├── model10.py
├── knn.py
├── logistic.py
├── random_forest.py
├── svm_linear.py
├── svm_poly.py
├── svm_rbf.py
├── dec_tree.py
├── extra_tree.py
├── ada_boost.py
└── metrics.py