Spaces:
Build error
Build error
# -*- coding: utf-8 -*- | |
"""shadman_Image_classification.ipynb | |
Automatically generated by Colaboratory. | |
Original file is located at | |
https://colab.research.google.com/drive/1DCVsfqR-kOz3CHdB99IT75IHBzUtIf3M | |
""" | |
import tensorflow as tf | |
import PIL | |
import matplotlib.pyplot as plt | |
from tensorflow.keras import layers | |
import os | |
import pathlib | |
flower_dataset = "https://storage.googleapis.com/download.tensorflow.org/example_images/flower_photos.tgz" | |
dataset_path = tf.keras.utils.get_file('flower_photos',origin=flower_dataset,untar=True) | |
dataset_path = pathlib.Path(dataset_path) | |
roses = list(dataset_path.glob('roses/*')) | |
daisy = list(dataset_path.glob('daisy/*')) | |
print(roses[1]) | |
PIL.Image.open(roses[10]) | |
PIL.Image.open(daisy[10]) | |
# training the dataset | |
training_images = tf.keras.preprocessing.image_dataset_from_directory( | |
dataset_path, | |
subset = "training", | |
validation_split = 0.25, | |
seed = 123, | |
image_size = (180, 180), | |
batch_size = 32 | |
) | |
# validation of images | |
validation_images = tf.keras.preprocessing.image_dataset_from_directory( | |
dataset_path, | |
subset = "validation", | |
validation_split = 0.25, | |
seed = 123, | |
image_size = (180, 180), | |
batch_size = 32 | |
) | |
flower_classes = training_images.class_names | |
print(flower_classes) | |
from tensorflow.python.framework.func_graph import flatten | |
# if there are 5 classes then | |
dataset_classes = 5 | |
from tensorflow.keras.models import Sequential | |
model = Sequential([ | |
#rescaling | |
layers.experimental.preprocessing.Rescaling(1./255, input_shape = (180,180,3)), | |
layers.Conv2D(16, 3 , padding='same' , activation='relu'), | |
layers.MaxPooling2D(), | |
layers.Conv2D(32, 3, padding ='same' , activation = 'relu'), | |
layers.MaxPooling2D(), | |
layers.Conv2D(64 , 3, padding='same', activation='relu'), | |
layers.MaxPooling2D(), | |
layers.Flatten(), | |
layers.Dense(128, activation='relu'), | |
layers.Dense(dataset_classes, activation='softmax') | |
]) | |
model.compile( | |
optimizer='adam', | |
loss=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True), | |
metrics=['accuracy']) | |
mymodel = model.fit( | |
training_images, | |
validation_data=validation_images, | |
epochs=10 | |
) | |
def predict_input_image(img): | |
img_4d=img.reshape(-1,180,180,3) | |
prediction=model.predict(img_4d)[0] | |
return {flower_classes[i]: float(prediction[i]) for i in range(5)} | |
! pip install gradio | |
import gradio as gr | |
def predict_input_image(img): | |
img_4d=img.reshape(-1,180,180,3) | |
prediction=model.predict(img_4d)[0] | |
return {flower_classes[i]: float(prediction[i]) for i in range(5)} | |
image = gr.inputs.Image(shape=(180,180)) | |
label = gr.outputs.Label(num_top_classes=5) | |
gr.Interface(fn=predict_input_image, inputs=image, outputs=label,interpretation='default').launch(debug='True') |