Commit 3a84bd31 authored by Saluk Bawantha's avatar Saluk Bawantha

Merge branch 'IT18124354_SALUKB.M.M' into 'master'

update CNN model class with more diseases

See merge request !19
parents 4194e761 3714b09d
# importing libraries # importing libraries
import keras, tensorflow
import numpy as np
from keras.preprocessing.image import ImageDataGenerator from keras.preprocessing.image import ImageDataGenerator
from keras.models import Sequential from keras.models import Sequential
from keras.layers import Conv2D, MaxPooling2D from keras.layers import Conv2D, MaxPooling2D
from keras.layers import Activation, Dropout, Flatten, Dense from keras.layers import Activation, Dropout, Flatten, Dense
from keras import backend as K from keras import backend as K
import matplotlib.pyplot as plt
img_width, img_height = 350, 350 img_width, img_height = 350, 350
...@@ -39,6 +37,7 @@ model.add(MaxPooling2D(pool_size =(2, 2))) ...@@ -39,6 +37,7 @@ model.add(MaxPooling2D(pool_size =(2, 2)))
model.add(Flatten()) model.add(Flatten())
model.add(Dense(64)) model.add(Dense(64))
model.add(Activation('relu')) model.add(Activation('relu'))
model.add(Dropout(0.5)) model.add(Dropout(0.5))
model.add(Dense(2)) model.add(Dense(2))
model.add(Activation('softmax')) model.add(Activation('softmax'))
...@@ -64,9 +63,27 @@ validation_generator = test_datagen.flow_from_directory( ...@@ -64,9 +63,27 @@ validation_generator = test_datagen.flow_from_directory(
target_size =(img_width, img_height), target_size =(img_width, img_height),
batch_size = batch_size, class_mode ='sparse') batch_size = batch_size, class_mode ='sparse')
model.fit_generator(train_generator, history = model.fit_generator(train_generator,
steps_per_epoch = nb_train_samples // batch_size, steps_per_epoch = nb_train_samples // batch_size,
epochs = epochs, validation_data = validation_generator, epochs = epochs, validation_data = validation_generator,
validation_steps = nb_validation_samples // batch_size) validation_steps = nb_validation_samples // batch_size)
model.save_weights('model_saved.h5') model.save_weights('model_saved.h5')
print(history.history)
# summarize history for accuracy
plt.plot(history.history['accuracy'])
plt.plot(history.history['val_accuracy'])
plt.title('model accuracy')
plt.ylabel('accuracy')
plt.xlabel('epoch')
plt.legend(['train', 'test'], loc='upper left')
plt.show()
# summarize history for loss
plt.plot(history.history['loss'])
plt.plot(history.history['val_loss'])
plt.title('model loss')
plt.ylabel('loss')
plt.xlabel('epoch')
plt.legend(['train', 'test'], loc='upper left')
plt.show()
...@@ -9,9 +9,10 @@ from keras.layers import Dense, Dropout, Flatten ...@@ -9,9 +9,10 @@ from keras.layers import Dense, Dropout, Flatten
from keras.models import Sequential from keras.models import Sequential
print(tensorflow.__version__) print(tensorflow.__version__)
print(keras.__version__) print(keras.__version__)
def predictImageClass(image): def predictImageClass(image):
K.clear_session() K.clear_session()
tensorflow.reset_default_graph() # tensorflow.reset_default_graph()
nb_train_samples = 112 nb_train_samples = 112
nb_validation_samples = 20 nb_validation_samples = 20
...@@ -65,9 +66,12 @@ def predictImageClass(image): ...@@ -65,9 +66,12 @@ def predictImageClass(image):
pred = modelI.predict(img) pred = modelI.predict(img)
# pred = labels["label_names"][np.argmax(pred)] # pred = labels["label_names"][np.argmax(pred)]
print(pred) print(pred)
y = ["Ring worms", "Sarcoptic & demodectic mange"] y = ["Sarcoptic & demodectic mange", "Ring worms"]
print(np.argmax(pred)) print(np.argmax(pred))
print(y[np.argmax(pred)]) print(y[np.argmax(pred)])
return y[np.argmax(pred)] return {
"pred": y[np.argmax(pred)],
"accuracy": str(pred[0][np.argmax(pred)])
}
predictImageClass("data/test/Ringworm/Ringworm1.jpg") # predictImageClass("data/test/Ringworm/Ringworm1.jpg")
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment