In [14]:
!pip install tensorflow
import tensorflow as tf
Requirement already satisfied: tensorflow in e:\miniconda_files\project3\env\lib\site-packages (2.12.0)
Requirement already satisfied: tensorflow-intel==2.12.0 in e:\miniconda_files\project3\env\lib\site-packages (from tensorflow) (2.12.0)
Requirement already satisfied: absl-py>=1.0.0 in e:\miniconda_files\project3\env\lib\site-packages (from tensorflow-intel==2.12.0->tensorflow) (1.4.0)
Requirement already satisfied: astunparse>=1.6.0 in e:\miniconda_files\project3\env\lib\site-packages (from tensorflow-intel==2.12.0->tensorflow) (1.6.3)
Requirement already satisfied: flatbuffers>=2.0 in e:\miniconda_files\project3\env\lib\site-packages (from tensorflow-intel==2.12.0->tensorflow) (23.3.3)
Requirement already satisfied: gast<=0.4.0,>=0.2.1 in e:\miniconda_files\project3\env\lib\site-packages (from tensorflow-intel==2.12.0->tensorflow) (0.4.0)
Requirement already satisfied: google-pasta>=0.1.1 in e:\miniconda_files\project3\env\lib\site-packages (from tensorflow-intel==2.12.0->tensorflow) (0.2.0)
Requirement already satisfied: h5py>=2.9.0 in e:\miniconda_files\project3\env\lib\site-packages (from tensorflow-intel==2.12.0->tensorflow) (3.8.0)
Requirement already satisfied: jax>=0.3.15 in e:\miniconda_files\project3\env\lib\site-packages (from tensorflow-intel==2.12.0->tensorflow) (0.4.8)
Requirement already satisfied: libclang>=13.0.0 in e:\miniconda_files\project3\env\lib\site-packages (from tensorflow-intel==2.12.0->tensorflow) (16.0.0)
Requirement already satisfied: numpy<1.24,>=1.22 in e:\miniconda_files\project3\env\lib\site-packages (from tensorflow-intel==2.12.0->tensorflow) (1.23.5)
Requirement already satisfied: opt-einsum>=2.3.2 in e:\miniconda_files\project3\env\lib\site-packages (from tensorflow-intel==2.12.0->tensorflow) (3.3.0)
Requirement already satisfied: packaging in e:\miniconda_files\project3\env\lib\site-packages (from tensorflow-intel==2.12.0->tensorflow) (23.0)
Requirement already satisfied: protobuf!=4.21.0,!=4.21.1,!=4.21.2,!=4.21.3,!=4.21.4,!=4.21.5,<5.0.0dev,>=3.20.3 in e:\miniconda_files\project3\env\lib\site-packages (from tensorflow-intel==2.12.0->tensorflow) (4.22.3)
Requirement already satisfied: setuptools in e:\miniconda_files\project3\env\lib\site-packages (from tensorflow-intel==2.12.0->tensorflow) (66.0.0)
Requirement already satisfied: six>=1.12.0 in e:\miniconda_files\project3\env\lib\site-packages (from tensorflow-intel==2.12.0->tensorflow) (1.16.0)
Requirement already satisfied: termcolor>=1.1.0 in e:\miniconda_files\project3\env\lib\site-packages (from tensorflow-intel==2.12.0->tensorflow) (2.2.0)
Requirement already satisfied: typing-extensions>=3.6.6 in e:\miniconda_files\project3\env\lib\site-packages (from tensorflow-intel==2.12.0->tensorflow) (4.4.0)
Requirement already satisfied: wrapt<1.15,>=1.11.0 in e:\miniconda_files\project3\env\lib\site-packages (from tensorflow-intel==2.12.0->tensorflow) (1.14.1)
Requirement already satisfied: grpcio<2.0,>=1.24.3 in e:\miniconda_files\project3\env\lib\site-packages (from tensorflow-intel==2.12.0->tensorflow) (1.54.0)
Requirement already satisfied: tensorboard<2.13,>=2.12 in e:\miniconda_files\project3\env\lib\site-packages (from tensorflow-intel==2.12.0->tensorflow) (2.12.2)
Requirement already satisfied: tensorflow-estimator<2.13,>=2.12.0 in e:\miniconda_files\project3\env\lib\site-packages (from tensorflow-intel==2.12.0->tensorflow) (2.12.0)
Requirement already satisfied: keras<2.13,>=2.12.0 in e:\miniconda_files\project3\env\lib\site-packages (from tensorflow-intel==2.12.0->tensorflow) (2.12.0)
Requirement already satisfied: tensorflow-io-gcs-filesystem>=0.23.1 in e:\miniconda_files\project3\env\lib\site-packages (from tensorflow-intel==2.12.0->tensorflow) (0.31.0)
Requirement already satisfied: wheel<1.0,>=0.23.0 in e:\miniconda_files\project3\env\lib\site-packages (from astunparse>=1.6.0->tensorflow-intel==2.12.0->tensorflow) (0.38.4)
Requirement already satisfied: ml-dtypes>=0.0.3 in e:\miniconda_files\project3\env\lib\site-packages (from jax>=0.3.15->tensorflow-intel==2.12.0->tensorflow) (0.1.0)
Requirement already satisfied: scipy>=1.7 in e:\miniconda_files\project3\env\lib\site-packages (from jax>=0.3.15->tensorflow-intel==2.12.0->tensorflow) (1.10.1)
Requirement already satisfied: google-auth<3,>=1.6.3 in e:\miniconda_files\project3\env\lib\site-packages (from tensorboard<2.13,>=2.12->tensorflow-intel==2.12.0->tensorflow) (2.17.3)
Requirement already satisfied: google-auth-oauthlib<1.1,>=0.5 in e:\miniconda_files\project3\env\lib\site-packages (from tensorboard<2.13,>=2.12->tensorflow-intel==2.12.0->tensorflow) (1.0.0)
Requirement already satisfied: markdown>=2.6.8 in e:\miniconda_files\project3\env\lib\site-packages (from tensorboard<2.13,>=2.12->tensorflow-intel==2.12.0->tensorflow) (3.4.3)
Requirement already satisfied: requests<3,>=2.21.0 in e:\miniconda_files\project3\env\lib\site-packages (from tensorboard<2.13,>=2.12->tensorflow-intel==2.12.0->tensorflow) (2.28.1)
Requirement already satisfied: tensorboard-data-server<0.8.0,>=0.7.0 in e:\miniconda_files\project3\env\lib\site-packages (from tensorboard<2.13,>=2.12->tensorflow-intel==2.12.0->tensorflow) (0.7.0)
Requirement already satisfied: tensorboard-plugin-wit>=1.6.0 in e:\miniconda_files\project3\env\lib\site-packages (from tensorboard<2.13,>=2.12->tensorflow-intel==2.12.0->tensorflow) (1.8.1)
Requirement already satisfied: werkzeug>=1.0.1 in e:\miniconda_files\project3\env\lib\site-packages (from tensorboard<2.13,>=2.12->tensorflow-intel==2.12.0->tensorflow) (2.2.3)
Requirement already satisfied: cachetools<6.0,>=2.0.0 in e:\miniconda_files\project3\env\lib\site-packages (from google-auth<3,>=1.6.3->tensorboard<2.13,>=2.12->tensorflow-intel==2.12.0->tensorflow) (5.3.0)
Requirement already satisfied: pyasn1-modules>=0.2.1 in e:\miniconda_files\project3\env\lib\site-packages (from google-auth<3,>=1.6.3->tensorboard<2.13,>=2.12->tensorflow-intel==2.12.0->tensorflow) (0.2.8)
Requirement already satisfied: rsa<5,>=3.1.4 in e:\miniconda_files\project3\env\lib\site-packages (from google-auth<3,>=1.6.3->tensorboard<2.13,>=2.12->tensorflow-intel==2.12.0->tensorflow) (4.9)
Requirement already satisfied: requests-oauthlib>=0.7.0 in e:\miniconda_files\project3\env\lib\site-packages (from google-auth-oauthlib<1.1,>=0.5->tensorboard<2.13,>=2.12->tensorflow-intel==2.12.0->tensorflow) (1.3.1)
Requirement already satisfied: charset-normalizer<3,>=2 in e:\miniconda_files\project3\env\lib\site-packages (from requests<3,>=2.21.0->tensorboard<2.13,>=2.12->tensorflow-intel==2.12.0->tensorflow) (2.0.4)
Requirement already satisfied: idna<4,>=2.5 in e:\miniconda_files\project3\env\lib\site-packages (from requests<3,>=2.21.0->tensorboard<2.13,>=2.12->tensorflow-intel==2.12.0->tensorflow) (3.4)
Requirement already satisfied: urllib3<1.27,>=1.21.1 in e:\miniconda_files\project3\env\lib\site-packages (from requests<3,>=2.21.0->tensorboard<2.13,>=2.12->tensorflow-intel==2.12.0->tensorflow) (1.26.15)
Requirement already satisfied: certifi>=2017.4.17 in e:\miniconda_files\project3\env\lib\site-packages (from requests<3,>=2.21.0->tensorboard<2.13,>=2.12->tensorflow-intel==2.12.0->tensorflow) (2022.12.7)
Requirement already satisfied: MarkupSafe>=2.1.1 in e:\miniconda_files\project3\env\lib\site-packages (from werkzeug>=1.0.1->tensorboard<2.13,>=2.12->tensorflow-intel==2.12.0->tensorflow) (2.1.1)
Requirement already satisfied: pyasn1<0.5.0,>=0.4.6 in e:\miniconda_files\project3\env\lib\site-packages (from pyasn1-modules>=0.2.1->google-auth<3,>=1.6.3->tensorboard<2.13,>=2.12->tensorflow-intel==2.12.0->tensorflow) (0.4.8)
Requirement already satisfied: oauthlib>=3.0.0 in e:\miniconda_files\project3\env\lib\site-packages (from requests-oauthlib>=0.7.0->google-auth-oauthlib<1.1,>=0.5->tensorboard<2.13,>=2.12->tensorflow-intel==2.12.0->tensorflow) (3.2.2)
In [15]:
print(tf.__version__)
2.12.0
In [39]:
!pip install opendatasets
import opendatasets as od
Requirement already satisfied: opendatasets in e:\miniconda_files\project3\env\lib\site-packages (0.1.22)
Requirement already satisfied: tqdm in e:\miniconda_files\project3\env\lib\site-packages (from opendatasets) (4.65.0)
Requirement already satisfied: kaggle in e:\miniconda_files\project3\env\lib\site-packages (from opendatasets) (1.5.13)
Requirement already satisfied: click in e:\miniconda_files\project3\env\lib\site-packages (from opendatasets) (8.1.3)
Requirement already satisfied: colorama in e:\miniconda_files\project3\env\lib\site-packages (from click->opendatasets) (0.4.6)
Requirement already satisfied: six>=1.10 in e:\miniconda_files\project3\env\lib\site-packages (from kaggle->opendatasets) (1.16.0)
Requirement already satisfied: certifi in e:\miniconda_files\project3\env\lib\site-packages (from kaggle->opendatasets) (2022.12.7)
Requirement already satisfied: python-dateutil in e:\miniconda_files\project3\env\lib\site-packages (from kaggle->opendatasets) (2.8.2)
Requirement already satisfied: requests in e:\miniconda_files\project3\env\lib\site-packages (from kaggle->opendatasets) (2.28.1)
Requirement already satisfied: python-slugify in e:\miniconda_files\project3\env\lib\site-packages (from kaggle->opendatasets) (8.0.1)
Requirement already satisfied: urllib3 in e:\miniconda_files\project3\env\lib\site-packages (from kaggle->opendatasets) (1.26.15)
Requirement already satisfied: text-unidecode>=1.3 in e:\miniconda_files\project3\env\lib\site-packages (from python-slugify->kaggle->opendatasets) (1.3)
Requirement already satisfied: charset-normalizer<3,>=2 in e:\miniconda_files\project3\env\lib\site-packages (from requests->kaggle->opendatasets) (2.0.4)
Requirement already satisfied: idna<4,>=2.5 in e:\miniconda_files\project3\env\lib\site-packages (from requests->kaggle->opendatasets) (3.4)
In [55]:
import os 

print('Training Folder')
for dirpath,filename,dirname in os.walk(r'E:\MINICONDA_FILES\PROJECT3\new-plant-diseases-dataset\New Plant Diseases Dataset(Augmented)\New Plant Diseases Dataset(Augmented)\train'):
    print(f'There are {len(filename)} directories,{len(dirname)} images in {dirpath}')
Training Folder
There are 34 directories,0 images in E:\MINICONDA_FILES\PROJECT3\new-plant-diseases-dataset\New Plant Diseases Dataset(Augmented)\New Plant Diseases Dataset(Augmented)\train
There are 0 directories,2016 images in E:\MINICONDA_FILES\PROJECT3\new-plant-diseases-dataset\New Plant Diseases Dataset(Augmented)\New Plant Diseases Dataset(Augmented)\train\Apple___Apple_scab
There are 0 directories,1987 images in E:\MINICONDA_FILES\PROJECT3\new-plant-diseases-dataset\New Plant Diseases Dataset(Augmented)\New Plant Diseases Dataset(Augmented)\train\Apple___Black_rot
There are 0 directories,1760 images in E:\MINICONDA_FILES\PROJECT3\new-plant-diseases-dataset\New Plant Diseases Dataset(Augmented)\New Plant Diseases Dataset(Augmented)\train\Apple___Cedar_apple_rust
There are 0 directories,2008 images in E:\MINICONDA_FILES\PROJECT3\new-plant-diseases-dataset\New Plant Diseases Dataset(Augmented)\New Plant Diseases Dataset(Augmented)\train\Apple___healthy
There are 0 directories,1816 images in E:\MINICONDA_FILES\PROJECT3\new-plant-diseases-dataset\New Plant Diseases Dataset(Augmented)\New Plant Diseases Dataset(Augmented)\train\Blueberry___healthy
There are 0 directories,1826 images in E:\MINICONDA_FILES\PROJECT3\new-plant-diseases-dataset\New Plant Diseases Dataset(Augmented)\New Plant Diseases Dataset(Augmented)\train\Cherry_(including_sour)___healthy
There are 0 directories,1683 images in E:\MINICONDA_FILES\PROJECT3\new-plant-diseases-dataset\New Plant Diseases Dataset(Augmented)\New Plant Diseases Dataset(Augmented)\train\Cherry_(including_sour)___Powdery_mildew
There are 0 directories,1642 images in E:\MINICONDA_FILES\PROJECT3\new-plant-diseases-dataset\New Plant Diseases Dataset(Augmented)\New Plant Diseases Dataset(Augmented)\train\Corn_(maize)___Cercospora_leaf_spot Gray_leaf_spot
There are 0 directories,581 images in E:\MINICONDA_FILES\PROJECT3\new-plant-diseases-dataset\New Plant Diseases Dataset(Augmented)\New Plant Diseases Dataset(Augmented)\train\Corn_(maize)___Common_rust_
There are 0 directories,1692 images in E:\MINICONDA_FILES\PROJECT3\new-plant-diseases-dataset\New Plant Diseases Dataset(Augmented)\New Plant Diseases Dataset(Augmented)\train\Grape___healthy
There are 0 directories,1722 images in E:\MINICONDA_FILES\PROJECT3\new-plant-diseases-dataset\New Plant Diseases Dataset(Augmented)\New Plant Diseases Dataset(Augmented)\train\Grape___Leaf_blight_(Isariopsis_Leaf_Spot)
There are 0 directories,2010 images in E:\MINICONDA_FILES\PROJECT3\new-plant-diseases-dataset\New Plant Diseases Dataset(Augmented)\New Plant Diseases Dataset(Augmented)\train\Orange___Haunglongbing_(Citrus_greening)
There are 0 directories,1838 images in E:\MINICONDA_FILES\PROJECT3\new-plant-diseases-dataset\New Plant Diseases Dataset(Augmented)\New Plant Diseases Dataset(Augmented)\train\Peach___Bacterial_spot
There are 0 directories,1728 images in E:\MINICONDA_FILES\PROJECT3\new-plant-diseases-dataset\New Plant Diseases Dataset(Augmented)\New Plant Diseases Dataset(Augmented)\train\Peach___healthy
There are 0 directories,1913 images in E:\MINICONDA_FILES\PROJECT3\new-plant-diseases-dataset\New Plant Diseases Dataset(Augmented)\New Plant Diseases Dataset(Augmented)\train\Pepper,_bell___Bacterial_spot
There are 0 directories,1988 images in E:\MINICONDA_FILES\PROJECT3\new-plant-diseases-dataset\New Plant Diseases Dataset(Augmented)\New Plant Diseases Dataset(Augmented)\train\Pepper,_bell___healthy
There are 0 directories,1939 images in E:\MINICONDA_FILES\PROJECT3\new-plant-diseases-dataset\New Plant Diseases Dataset(Augmented)\New Plant Diseases Dataset(Augmented)\train\Potato___Early_blight
There are 0 directories,1824 images in E:\MINICONDA_FILES\PROJECT3\new-plant-diseases-dataset\New Plant Diseases Dataset(Augmented)\New Plant Diseases Dataset(Augmented)\train\Potato___healthy
There are 0 directories,1939 images in E:\MINICONDA_FILES\PROJECT3\new-plant-diseases-dataset\New Plant Diseases Dataset(Augmented)\New Plant Diseases Dataset(Augmented)\train\Potato___Late_blight
There are 0 directories,1781 images in E:\MINICONDA_FILES\PROJECT3\new-plant-diseases-dataset\New Plant Diseases Dataset(Augmented)\New Plant Diseases Dataset(Augmented)\train\Raspberry___healthy
There are 0 directories,2022 images in E:\MINICONDA_FILES\PROJECT3\new-plant-diseases-dataset\New Plant Diseases Dataset(Augmented)\New Plant Diseases Dataset(Augmented)\train\Soybean___healthy
There are 0 directories,1736 images in E:\MINICONDA_FILES\PROJECT3\new-plant-diseases-dataset\New Plant Diseases Dataset(Augmented)\New Plant Diseases Dataset(Augmented)\train\Squash___Powdery_mildew
There are 0 directories,1824 images in E:\MINICONDA_FILES\PROJECT3\new-plant-diseases-dataset\New Plant Diseases Dataset(Augmented)\New Plant Diseases Dataset(Augmented)\train\Strawberry___healthy
There are 0 directories,1774 images in E:\MINICONDA_FILES\PROJECT3\new-plant-diseases-dataset\New Plant Diseases Dataset(Augmented)\New Plant Diseases Dataset(Augmented)\train\Strawberry___Leaf_scorch
There are 0 directories,1702 images in E:\MINICONDA_FILES\PROJECT3\new-plant-diseases-dataset\New Plant Diseases Dataset(Augmented)\New Plant Diseases Dataset(Augmented)\train\Tomato___Bacterial_spot
There are 0 directories,1920 images in E:\MINICONDA_FILES\PROJECT3\new-plant-diseases-dataset\New Plant Diseases Dataset(Augmented)\New Plant Diseases Dataset(Augmented)\train\Tomato___Early_blight
There are 0 directories,1926 images in E:\MINICONDA_FILES\PROJECT3\new-plant-diseases-dataset\New Plant Diseases Dataset(Augmented)\New Plant Diseases Dataset(Augmented)\train\Tomato___healthy
There are 0 directories,1851 images in E:\MINICONDA_FILES\PROJECT3\new-plant-diseases-dataset\New Plant Diseases Dataset(Augmented)\New Plant Diseases Dataset(Augmented)\train\Tomato___Late_blight
There are 0 directories,1882 images in E:\MINICONDA_FILES\PROJECT3\new-plant-diseases-dataset\New Plant Diseases Dataset(Augmented)\New Plant Diseases Dataset(Augmented)\train\Tomato___Leaf_Mold
There are 0 directories,1745 images in E:\MINICONDA_FILES\PROJECT3\new-plant-diseases-dataset\New Plant Diseases Dataset(Augmented)\New Plant Diseases Dataset(Augmented)\train\Tomato___Septoria_leaf_spot
There are 0 directories,1741 images in E:\MINICONDA_FILES\PROJECT3\new-plant-diseases-dataset\New Plant Diseases Dataset(Augmented)\New Plant Diseases Dataset(Augmented)\train\Tomato___Spider_mites Two-spotted_spider_mite
There are 0 directories,1827 images in E:\MINICONDA_FILES\PROJECT3\new-plant-diseases-dataset\New Plant Diseases Dataset(Augmented)\New Plant Diseases Dataset(Augmented)\train\Tomato___Target_Spot
There are 0 directories,1790 images in E:\MINICONDA_FILES\PROJECT3\new-plant-diseases-dataset\New Plant Diseases Dataset(Augmented)\New Plant Diseases Dataset(Augmented)\train\Tomato___Tomato_mosaic_virus
There are 0 directories,1961 images in E:\MINICONDA_FILES\PROJECT3\new-plant-diseases-dataset\New Plant Diseases Dataset(Augmented)\New Plant Diseases Dataset(Augmented)\train\Tomato___Tomato_Yellow_Leaf_Curl_Virus
In [56]:
print('Testing Folder')
for dirpath,filename,dirname in os.walk(r'E:\MINICONDA_FILES\PROJECT3\new-plant-diseases-dataset\New Plant Diseases Dataset(Augmented)\New Plant Diseases Dataset(Augmented)\valid'):
    print(f'There are {len(filename)} directories,{len(dirname)} images in {dirpath}')
Testing Folder
There are 27 directories,0 images in E:\MINICONDA_FILES\PROJECT3\new-plant-diseases-dataset\New Plant Diseases Dataset(Augmented)\New Plant Diseases Dataset(Augmented)\valid
There are 0 directories,504 images in E:\MINICONDA_FILES\PROJECT3\new-plant-diseases-dataset\New Plant Diseases Dataset(Augmented)\New Plant Diseases Dataset(Augmented)\valid\Apple___Apple_scab
There are 0 directories,497 images in E:\MINICONDA_FILES\PROJECT3\new-plant-diseases-dataset\New Plant Diseases Dataset(Augmented)\New Plant Diseases Dataset(Augmented)\valid\Apple___Black_rot
There are 0 directories,440 images in E:\MINICONDA_FILES\PROJECT3\new-plant-diseases-dataset\New Plant Diseases Dataset(Augmented)\New Plant Diseases Dataset(Augmented)\valid\Apple___Cedar_apple_rust
There are 0 directories,502 images in E:\MINICONDA_FILES\PROJECT3\new-plant-diseases-dataset\New Plant Diseases Dataset(Augmented)\New Plant Diseases Dataset(Augmented)\valid\Apple___healthy
There are 0 directories,454 images in E:\MINICONDA_FILES\PROJECT3\new-plant-diseases-dataset\New Plant Diseases Dataset(Augmented)\New Plant Diseases Dataset(Augmented)\valid\Blueberry___healthy
There are 0 directories,456 images in E:\MINICONDA_FILES\PROJECT3\new-plant-diseases-dataset\New Plant Diseases Dataset(Augmented)\New Plant Diseases Dataset(Augmented)\valid\Cherry_(including_sour)___healthy
There are 0 directories,421 images in E:\MINICONDA_FILES\PROJECT3\new-plant-diseases-dataset\New Plant Diseases Dataset(Augmented)\New Plant Diseases Dataset(Augmented)\valid\Cherry_(including_sour)___Powdery_mildew
There are 0 directories,410 images in E:\MINICONDA_FILES\PROJECT3\new-plant-diseases-dataset\New Plant Diseases Dataset(Augmented)\New Plant Diseases Dataset(Augmented)\valid\Corn_(maize)___Cercospora_leaf_spot Gray_leaf_spot
There are 0 directories,477 images in E:\MINICONDA_FILES\PROJECT3\new-plant-diseases-dataset\New Plant Diseases Dataset(Augmented)\New Plant Diseases Dataset(Augmented)\valid\Corn_(maize)___Common_rust_
There are 0 directories,465 images in E:\MINICONDA_FILES\PROJECT3\new-plant-diseases-dataset\New Plant Diseases Dataset(Augmented)\New Plant Diseases Dataset(Augmented)\valid\Corn_(maize)___healthy
There are 0 directories,477 images in E:\MINICONDA_FILES\PROJECT3\new-plant-diseases-dataset\New Plant Diseases Dataset(Augmented)\New Plant Diseases Dataset(Augmented)\valid\Corn_(maize)___Northern_Leaf_Blight
There are 0 directories,472 images in E:\MINICONDA_FILES\PROJECT3\new-plant-diseases-dataset\New Plant Diseases Dataset(Augmented)\New Plant Diseases Dataset(Augmented)\valid\Grape___Black_rot
There are 0 directories,480 images in E:\MINICONDA_FILES\PROJECT3\new-plant-diseases-dataset\New Plant Diseases Dataset(Augmented)\New Plant Diseases Dataset(Augmented)\valid\Grape___Esca_(Black_Measles)
There are 0 directories,423 images in E:\MINICONDA_FILES\PROJECT3\new-plant-diseases-dataset\New Plant Diseases Dataset(Augmented)\New Plant Diseases Dataset(Augmented)\valid\Grape___healthy
There are 0 directories,430 images in E:\MINICONDA_FILES\PROJECT3\new-plant-diseases-dataset\New Plant Diseases Dataset(Augmented)\New Plant Diseases Dataset(Augmented)\valid\Grape___Leaf_blight_(Isariopsis_Leaf_Spot)
There are 0 directories,503 images in E:\MINICONDA_FILES\PROJECT3\new-plant-diseases-dataset\New Plant Diseases Dataset(Augmented)\New Plant Diseases Dataset(Augmented)\valid\Orange___Haunglongbing_(Citrus_greening)
There are 0 directories,459 images in E:\MINICONDA_FILES\PROJECT3\new-plant-diseases-dataset\New Plant Diseases Dataset(Augmented)\New Plant Diseases Dataset(Augmented)\valid\Peach___Bacterial_spot
There are 0 directories,432 images in E:\MINICONDA_FILES\PROJECT3\new-plant-diseases-dataset\New Plant Diseases Dataset(Augmented)\New Plant Diseases Dataset(Augmented)\valid\Peach___healthy
There are 0 directories,478 images in E:\MINICONDA_FILES\PROJECT3\new-plant-diseases-dataset\New Plant Diseases Dataset(Augmented)\New Plant Diseases Dataset(Augmented)\valid\Pepper,_bell___Bacterial_spot
There are 0 directories,497 images in E:\MINICONDA_FILES\PROJECT3\new-plant-diseases-dataset\New Plant Diseases Dataset(Augmented)\New Plant Diseases Dataset(Augmented)\valid\Pepper,_bell___healthy
There are 0 directories,485 images in E:\MINICONDA_FILES\PROJECT3\new-plant-diseases-dataset\New Plant Diseases Dataset(Augmented)\New Plant Diseases Dataset(Augmented)\valid\Potato___Early_blight
There are 0 directories,456 images in E:\MINICONDA_FILES\PROJECT3\new-plant-diseases-dataset\New Plant Diseases Dataset(Augmented)\New Plant Diseases Dataset(Augmented)\valid\Potato___healthy
There are 0 directories,485 images in E:\MINICONDA_FILES\PROJECT3\new-plant-diseases-dataset\New Plant Diseases Dataset(Augmented)\New Plant Diseases Dataset(Augmented)\valid\Potato___Late_blight
There are 0 directories,445 images in E:\MINICONDA_FILES\PROJECT3\new-plant-diseases-dataset\New Plant Diseases Dataset(Augmented)\New Plant Diseases Dataset(Augmented)\valid\Raspberry___healthy
There are 0 directories,505 images in E:\MINICONDA_FILES\PROJECT3\new-plant-diseases-dataset\New Plant Diseases Dataset(Augmented)\New Plant Diseases Dataset(Augmented)\valid\Soybean___healthy
There are 0 directories,434 images in E:\MINICONDA_FILES\PROJECT3\new-plant-diseases-dataset\New Plant Diseases Dataset(Augmented)\New Plant Diseases Dataset(Augmented)\valid\Squash___Powdery_mildew
There are 0 directories,118 images in E:\MINICONDA_FILES\PROJECT3\new-plant-diseases-dataset\New Plant Diseases Dataset(Augmented)\New Plant Diseases Dataset(Augmented)\valid\Strawberry___healthy
In [58]:
from tensorflow.keras.preprocessing import image_dataset_from_directory

train_dir = 'E:/MINICONDA_FILES/PROJECT3/new-plant-diseases-dataset/New Plant Diseases Dataset(Augmented)/New Plant Diseases Dataset(Augmented)/train'
test_dir = 'E:/MINICONDA_FILES/PROJECT3/new-plant-diseases-dataset/New Plant Diseases Dataset(Augmented)/New Plant Diseases Dataset(Augmented)/valid'

train_data = image_dataset_from_directory(train_dir,
                                             image_size=(224,224),
                                             label_mode='categorical',
                                             batch_size=32)

test_data = image_dataset_from_directory(test_dir,
                                         image_size=(224,224),
                                         label_mode='categorical',
                                         batch_size=32)
Found 70295 files belonging to 38 classes.
Found 17572 files belonging to 38 classes.
In [59]:
train_data,test_data
Out[59]:
(<_BatchDataset element_spec=(TensorSpec(shape=(None, 224, 224, 3), dtype=tf.float32, name=None), TensorSpec(shape=(None, 38), dtype=tf.float32, name=None))>,
 <_BatchDataset element_spec=(TensorSpec(shape=(None, 224, 224, 3), dtype=tf.float32, name=None), TensorSpec(shape=(None, 38), dtype=tf.float32, name=None))>)
In [60]:
class_names = train_data.class_names
class_names
Out[60]:
['Apple___Apple_scab',
 'Apple___Black_rot',
 'Apple___Cedar_apple_rust',
 'Apple___healthy',
 'Blueberry___healthy',
 'Cherry_(including_sour)___Powdery_mildew',
 'Cherry_(including_sour)___healthy',
 'Corn_(maize)___Cercospora_leaf_spot Gray_leaf_spot',
 'Corn_(maize)___Common_rust_',
 'Corn_(maize)___Northern_Leaf_Blight',
 'Corn_(maize)___healthy',
 'Grape___Black_rot',
 'Grape___Esca_(Black_Measles)',
 'Grape___Leaf_blight_(Isariopsis_Leaf_Spot)',
 'Grape___healthy',
 'Orange___Haunglongbing_(Citrus_greening)',
 'Peach___Bacterial_spot',
 'Peach___healthy',
 'Pepper,_bell___Bacterial_spot',
 'Pepper,_bell___healthy',
 'Potato___Early_blight',
 'Potato___Late_blight',
 'Potato___healthy',
 'Raspberry___healthy',
 'Soybean___healthy',
 'Squash___Powdery_mildew',
 'Strawberry___Leaf_scorch',
 'Strawberry___healthy',
 'Tomato___Bacterial_spot',
 'Tomato___Early_blight',
 'Tomato___Late_blight',
 'Tomato___Leaf_Mold',
 'Tomato___Septoria_leaf_spot',
 'Tomato___Spider_mites Two-spotted_spider_mite',
 'Tomato___Target_Spot',
 'Tomato___Tomato_Yellow_Leaf_Curl_Virus',
 'Tomato___Tomato_mosaic_virus',
 'Tomato___healthy']
In [72]:
import matplotlib.pyplot as plt
import matplotlib.image as mpimg
import random
import os 
def get_random_image(directory,class_names=class_names):
    rn = random.randint(0,len(class_names)-1)
    choice = random.choice(os.listdir(os.path.join(directory,class_names[rn])))
    img_path= os.path.join(directory,class_names[rn],choice)
    img = mpimg.imread(img_path)
    plt.imshow(img)
    fontsize=10
    plt.title(class_names[rn],fontdict={'fontsize': fontsize})
    plt.axis(False)
In [73]:
plt.figure(figsize=(10,8))
for i in range(9):
    plt.subplot(3,3,i+1)
    get_random_image(train_dir)
No description has been provided for this image
In [64]:
import tensorflow as tf
from tensorflow.keras import layers

image_shape = (224,224,3)

base_model = tf.keras.applications.EfficientNetB0(include_top=False,)
base_model.trainable = False

inputs =  layers.Input(shape = image_shape,name='input_layer')

x = base_model(inputs)

x = layers.GlobalAveragePooling2D(name='GlobalAveragePooling2D_layer')(x)

outputs = layers.Dense(38,activation='softmax',name='output_layer')(x)

feature_model = tf.keras.Model(inputs,outputs,name='plant_disease_model')
In [66]:
base_model.trainable = True

for layer in base_model.layers[:-20]:
    layer.trainable = False

feature_model.compile(loss='categorical_crossentropy',
                      optimizer=tf.keras.optimizers.Adam(),
                      metrics=['accuracy'])
In [67]:
base_model.summary()
Model: "efficientnetb0"
__________________________________________________________________________________________________
 Layer (type)                   Output Shape         Param #     Connected to                     
==================================================================================================
 input_2 (InputLayer)           [(None, None, None,  0           []                               
                                 3)]                                                              
                                                                                                  
 rescaling_2 (Rescaling)        (None, None, None,   0           ['input_2[0][0]']                
                                3)                                                                
                                                                                                  
 normalization_1 (Normalization  (None, None, None,   7          ['rescaling_2[0][0]']            
 )                              3)                                                                
                                                                                                  
 rescaling_3 (Rescaling)        (None, None, None,   0           ['normalization_1[0][0]']        
                                3)                                                                
                                                                                                  
 stem_conv_pad (ZeroPadding2D)  (None, None, None,   0           ['rescaling_3[0][0]']            
                                3)                                                                
                                                                                                  
 stem_conv (Conv2D)             (None, None, None,   864         ['stem_conv_pad[0][0]']          
                                32)                                                               
                                                                                                  
 stem_bn (BatchNormalization)   (None, None, None,   128         ['stem_conv[0][0]']              
                                32)                                                               
                                                                                                  
 stem_activation (Activation)   (None, None, None,   0           ['stem_bn[0][0]']                
                                32)                                                               
                                                                                                  
 block1a_dwconv (DepthwiseConv2  (None, None, None,   288        ['stem_activation[0][0]']        
 D)                             32)                                                               
                                                                                                  
 block1a_bn (BatchNormalization  (None, None, None,   128        ['block1a_dwconv[0][0]']         
 )                              32)                                                               
                                                                                                  
 block1a_activation (Activation  (None, None, None,   0          ['block1a_bn[0][0]']             
 )                              32)                                                               
                                                                                                  
 block1a_se_squeeze (GlobalAver  (None, 32)          0           ['block1a_activation[0][0]']     
 agePooling2D)                                                                                    
                                                                                                  
 block1a_se_reshape (Reshape)   (None, 1, 1, 32)     0           ['block1a_se_squeeze[0][0]']     
                                                                                                  
 block1a_se_reduce (Conv2D)     (None, 1, 1, 8)      264         ['block1a_se_reshape[0][0]']     
                                                                                                  
 block1a_se_expand (Conv2D)     (None, 1, 1, 32)     288         ['block1a_se_reduce[0][0]']      
                                                                                                  
 block1a_se_excite (Multiply)   (None, None, None,   0           ['block1a_activation[0][0]',     
                                32)                               'block1a_se_expand[0][0]']      
                                                                                                  
 block1a_project_conv (Conv2D)  (None, None, None,   512         ['block1a_se_excite[0][0]']      
                                16)                                                               
                                                                                                  
 block1a_project_bn (BatchNorma  (None, None, None,   64         ['block1a_project_conv[0][0]']   
 lization)                      16)                                                               
                                                                                                  
 block2a_expand_conv (Conv2D)   (None, None, None,   1536        ['block1a_project_bn[0][0]']     
                                96)                                                               
                                                                                                  
 block2a_expand_bn (BatchNormal  (None, None, None,   384        ['block2a_expand_conv[0][0]']    
 ization)                       96)                                                               
                                                                                                  
 block2a_expand_activation (Act  (None, None, None,   0          ['block2a_expand_bn[0][0]']      
 ivation)                       96)                                                               
                                                                                                  
 block2a_dwconv_pad (ZeroPaddin  (None, None, None,   0          ['block2a_expand_activation[0][0]
 g2D)                           96)                              ']                               
                                                                                                  
 block2a_dwconv (DepthwiseConv2  (None, None, None,   864        ['block2a_dwconv_pad[0][0]']     
 D)                             96)                                                               
                                                                                                  
 block2a_bn (BatchNormalization  (None, None, None,   384        ['block2a_dwconv[0][0]']         
 )                              96)                                                               
                                                                                                  
 block2a_activation (Activation  (None, None, None,   0          ['block2a_bn[0][0]']             
 )                              96)                                                               
                                                                                                  
 block2a_se_squeeze (GlobalAver  (None, 96)          0           ['block2a_activation[0][0]']     
 agePooling2D)                                                                                    
                                                                                                  
 block2a_se_reshape (Reshape)   (None, 1, 1, 96)     0           ['block2a_se_squeeze[0][0]']     
                                                                                                  
 block2a_se_reduce (Conv2D)     (None, 1, 1, 4)      388         ['block2a_se_reshape[0][0]']     
                                                                                                  
 block2a_se_expand (Conv2D)     (None, 1, 1, 96)     480         ['block2a_se_reduce[0][0]']      
                                                                                                  
 block2a_se_excite (Multiply)   (None, None, None,   0           ['block2a_activation[0][0]',     
                                96)                               'block2a_se_expand[0][0]']      
                                                                                                  
 block2a_project_conv (Conv2D)  (None, None, None,   2304        ['block2a_se_excite[0][0]']      
                                24)                                                               
                                                                                                  
 block2a_project_bn (BatchNorma  (None, None, None,   96         ['block2a_project_conv[0][0]']   
 lization)                      24)                                                               
                                                                                                  
 block2b_expand_conv (Conv2D)   (None, None, None,   3456        ['block2a_project_bn[0][0]']     
                                144)                                                              
                                                                                                  
 block2b_expand_bn (BatchNormal  (None, None, None,   576        ['block2b_expand_conv[0][0]']    
 ization)                       144)                                                              
                                                                                                  
 block2b_expand_activation (Act  (None, None, None,   0          ['block2b_expand_bn[0][0]']      
 ivation)                       144)                                                              
                                                                                                  
 block2b_dwconv (DepthwiseConv2  (None, None, None,   1296       ['block2b_expand_activation[0][0]
 D)                             144)                             ']                               
                                                                                                  
 block2b_bn (BatchNormalization  (None, None, None,   576        ['block2b_dwconv[0][0]']         
 )                              144)                                                              
                                                                                                  
 block2b_activation (Activation  (None, None, None,   0          ['block2b_bn[0][0]']             
 )                              144)                                                              
                                                                                                  
 block2b_se_squeeze (GlobalAver  (None, 144)         0           ['block2b_activation[0][0]']     
 agePooling2D)                                                                                    
                                                                                                  
 block2b_se_reshape (Reshape)   (None, 1, 1, 144)    0           ['block2b_se_squeeze[0][0]']     
                                                                                                  
 block2b_se_reduce (Conv2D)     (None, 1, 1, 6)      870         ['block2b_se_reshape[0][0]']     
                                                                                                  
 block2b_se_expand (Conv2D)     (None, 1, 1, 144)    1008        ['block2b_se_reduce[0][0]']      
                                                                                                  
 block2b_se_excite (Multiply)   (None, None, None,   0           ['block2b_activation[0][0]',     
                                144)                              'block2b_se_expand[0][0]']      
                                                                                                  
 block2b_project_conv (Conv2D)  (None, None, None,   3456        ['block2b_se_excite[0][0]']      
                                24)                                                               
                                                                                                  
 block2b_project_bn (BatchNorma  (None, None, None,   96         ['block2b_project_conv[0][0]']   
 lization)                      24)                                                               
                                                                                                  
 block2b_drop (Dropout)         (None, None, None,   0           ['block2b_project_bn[0][0]']     
                                24)                                                               
                                                                                                  
 block2b_add (Add)              (None, None, None,   0           ['block2b_drop[0][0]',           
                                24)                               'block2a_project_bn[0][0]']     
                                                                                                  
 block3a_expand_conv (Conv2D)   (None, None, None,   3456        ['block2b_add[0][0]']            
                                144)                                                              
                                                                                                  
 block3a_expand_bn (BatchNormal  (None, None, None,   576        ['block3a_expand_conv[0][0]']    
 ization)                       144)                                                              
                                                                                                  
 block3a_expand_activation (Act  (None, None, None,   0          ['block3a_expand_bn[0][0]']      
 ivation)                       144)                                                              
                                                                                                  
 block3a_dwconv_pad (ZeroPaddin  (None, None, None,   0          ['block3a_expand_activation[0][0]
 g2D)                           144)                             ']                               
                                                                                                  
 block3a_dwconv (DepthwiseConv2  (None, None, None,   3600       ['block3a_dwconv_pad[0][0]']     
 D)                             144)                                                              
                                                                                                  
 block3a_bn (BatchNormalization  (None, None, None,   576        ['block3a_dwconv[0][0]']         
 )                              144)                                                              
                                                                                                  
 block3a_activation (Activation  (None, None, None,   0          ['block3a_bn[0][0]']             
 )                              144)                                                              
                                                                                                  
 block3a_se_squeeze (GlobalAver  (None, 144)         0           ['block3a_activation[0][0]']     
 agePooling2D)                                                                                    
                                                                                                  
 block3a_se_reshape (Reshape)   (None, 1, 1, 144)    0           ['block3a_se_squeeze[0][0]']     
                                                                                                  
 block3a_se_reduce (Conv2D)     (None, 1, 1, 6)      870         ['block3a_se_reshape[0][0]']     
                                                                                                  
 block3a_se_expand (Conv2D)     (None, 1, 1, 144)    1008        ['block3a_se_reduce[0][0]']      
                                                                                                  
 block3a_se_excite (Multiply)   (None, None, None,   0           ['block3a_activation[0][0]',     
                                144)                              'block3a_se_expand[0][0]']      
                                                                                                  
 block3a_project_conv (Conv2D)  (None, None, None,   5760        ['block3a_se_excite[0][0]']      
                                40)                                                               
                                                                                                  
 block3a_project_bn (BatchNorma  (None, None, None,   160        ['block3a_project_conv[0][0]']   
 lization)                      40)                                                               
                                                                                                  
 block3b_expand_conv (Conv2D)   (None, None, None,   9600        ['block3a_project_bn[0][0]']     
                                240)                                                              
                                                                                                  
 block3b_expand_bn (BatchNormal  (None, None, None,   960        ['block3b_expand_conv[0][0]']    
 ization)                       240)                                                              
                                                                                                  
 block3b_expand_activation (Act  (None, None, None,   0          ['block3b_expand_bn[0][0]']      
 ivation)                       240)                                                              
                                                                                                  
 block3b_dwconv (DepthwiseConv2  (None, None, None,   6000       ['block3b_expand_activation[0][0]
 D)                             240)                             ']                               
                                                                                                  
 block3b_bn (BatchNormalization  (None, None, None,   960        ['block3b_dwconv[0][0]']         
 )                              240)                                                              
                                                                                                  
 block3b_activation (Activation  (None, None, None,   0          ['block3b_bn[0][0]']             
 )                              240)                                                              
                                                                                                  
 block3b_se_squeeze (GlobalAver  (None, 240)         0           ['block3b_activation[0][0]']     
 agePooling2D)                                                                                    
                                                                                                  
 block3b_se_reshape (Reshape)   (None, 1, 1, 240)    0           ['block3b_se_squeeze[0][0]']     
                                                                                                  
 block3b_se_reduce (Conv2D)     (None, 1, 1, 10)     2410        ['block3b_se_reshape[0][0]']     
                                                                                                  
 block3b_se_expand (Conv2D)     (None, 1, 1, 240)    2640        ['block3b_se_reduce[0][0]']      
                                                                                                  
 block3b_se_excite (Multiply)   (None, None, None,   0           ['block3b_activation[0][0]',     
                                240)                              'block3b_se_expand[0][0]']      
                                                                                                  
 block3b_project_conv (Conv2D)  (None, None, None,   9600        ['block3b_se_excite[0][0]']      
                                40)                                                               
                                                                                                  
 block3b_project_bn (BatchNorma  (None, None, None,   160        ['block3b_project_conv[0][0]']   
 lization)                      40)                                                               
                                                                                                  
 block3b_drop (Dropout)         (None, None, None,   0           ['block3b_project_bn[0][0]']     
                                40)                                                               
                                                                                                  
 block3b_add (Add)              (None, None, None,   0           ['block3b_drop[0][0]',           
                                40)                               'block3a_project_bn[0][0]']     
                                                                                                  
 block4a_expand_conv (Conv2D)   (None, None, None,   9600        ['block3b_add[0][0]']            
                                240)                                                              
                                                                                                  
 block4a_expand_bn (BatchNormal  (None, None, None,   960        ['block4a_expand_conv[0][0]']    
 ization)                       240)                                                              
                                                                                                  
 block4a_expand_activation (Act  (None, None, None,   0          ['block4a_expand_bn[0][0]']      
 ivation)                       240)                                                              
                                                                                                  
 block4a_dwconv_pad (ZeroPaddin  (None, None, None,   0          ['block4a_expand_activation[0][0]
 g2D)                           240)                             ']                               
                                                                                                  
 block4a_dwconv (DepthwiseConv2  (None, None, None,   2160       ['block4a_dwconv_pad[0][0]']     
 D)                             240)                                                              
                                                                                                  
 block4a_bn (BatchNormalization  (None, None, None,   960        ['block4a_dwconv[0][0]']         
 )                              240)                                                              
                                                                                                  
 block4a_activation (Activation  (None, None, None,   0          ['block4a_bn[0][0]']             
 )                              240)                                                              
                                                                                                  
 block4a_se_squeeze (GlobalAver  (None, 240)         0           ['block4a_activation[0][0]']     
 agePooling2D)                                                                                    
                                                                                                  
 block4a_se_reshape (Reshape)   (None, 1, 1, 240)    0           ['block4a_se_squeeze[0][0]']     
                                                                                                  
 block4a_se_reduce (Conv2D)     (None, 1, 1, 10)     2410        ['block4a_se_reshape[0][0]']     
                                                                                                  
 block4a_se_expand (Conv2D)     (None, 1, 1, 240)    2640        ['block4a_se_reduce[0][0]']      
                                                                                                  
 block4a_se_excite (Multiply)   (None, None, None,   0           ['block4a_activation[0][0]',     
                                240)                              'block4a_se_expand[0][0]']      
                                                                                                  
 block4a_project_conv (Conv2D)  (None, None, None,   19200       ['block4a_se_excite[0][0]']      
                                80)                                                               
                                                                                                  
 block4a_project_bn (BatchNorma  (None, None, None,   320        ['block4a_project_conv[0][0]']   
 lization)                      80)                                                               
                                                                                                  
 block4b_expand_conv (Conv2D)   (None, None, None,   38400       ['block4a_project_bn[0][0]']     
                                480)                                                              
                                                                                                  
 block4b_expand_bn (BatchNormal  (None, None, None,   1920       ['block4b_expand_conv[0][0]']    
 ization)                       480)                                                              
                                                                                                  
 block4b_expand_activation (Act  (None, None, None,   0          ['block4b_expand_bn[0][0]']      
 ivation)                       480)                                                              
                                                                                                  
 block4b_dwconv (DepthwiseConv2  (None, None, None,   4320       ['block4b_expand_activation[0][0]
 D)                             480)                             ']                               
                                                                                                  
 block4b_bn (BatchNormalization  (None, None, None,   1920       ['block4b_dwconv[0][0]']         
 )                              480)                                                              
                                                                                                  
 block4b_activation (Activation  (None, None, None,   0          ['block4b_bn[0][0]']             
 )                              480)                                                              
                                                                                                  
 block4b_se_squeeze (GlobalAver  (None, 480)         0           ['block4b_activation[0][0]']     
 agePooling2D)                                                                                    
                                                                                                  
 block4b_se_reshape (Reshape)   (None, 1, 1, 480)    0           ['block4b_se_squeeze[0][0]']     
                                                                                                  
 block4b_se_reduce (Conv2D)     (None, 1, 1, 20)     9620        ['block4b_se_reshape[0][0]']     
                                                                                                  
 block4b_se_expand (Conv2D)     (None, 1, 1, 480)    10080       ['block4b_se_reduce[0][0]']      
                                                                                                  
 block4b_se_excite (Multiply)   (None, None, None,   0           ['block4b_activation[0][0]',     
                                480)                              'block4b_se_expand[0][0]']      
                                                                                                  
 block4b_project_conv (Conv2D)  (None, None, None,   38400       ['block4b_se_excite[0][0]']      
                                80)                                                               
                                                                                                  
 block4b_project_bn (BatchNorma  (None, None, None,   320        ['block4b_project_conv[0][0]']   
 lization)                      80)                                                               
                                                                                                  
 block4b_drop (Dropout)         (None, None, None,   0           ['block4b_project_bn[0][0]']     
                                80)                                                               
                                                                                                  
 block4b_add (Add)              (None, None, None,   0           ['block4b_drop[0][0]',           
                                80)                               'block4a_project_bn[0][0]']     
                                                                                                  
 block4c_expand_conv (Conv2D)   (None, None, None,   38400       ['block4b_add[0][0]']            
                                480)                                                              
                                                                                                  
 block4c_expand_bn (BatchNormal  (None, None, None,   1920       ['block4c_expand_conv[0][0]']    
 ization)                       480)                                                              
                                                                                                  
 block4c_expand_activation (Act  (None, None, None,   0          ['block4c_expand_bn[0][0]']      
 ivation)                       480)                                                              
                                                                                                  
 block4c_dwconv (DepthwiseConv2  (None, None, None,   4320       ['block4c_expand_activation[0][0]
 D)                             480)                             ']                               
                                                                                                  
 block4c_bn (BatchNormalization  (None, None, None,   1920       ['block4c_dwconv[0][0]']         
 )                              480)                                                              
                                                                                                  
 block4c_activation (Activation  (None, None, None,   0          ['block4c_bn[0][0]']             
 )                              480)                                                              
                                                                                                  
 block4c_se_squeeze (GlobalAver  (None, 480)         0           ['block4c_activation[0][0]']     
 agePooling2D)                                                                                    
                                                                                                  
 block4c_se_reshape (Reshape)   (None, 1, 1, 480)    0           ['block4c_se_squeeze[0][0]']     
                                                                                                  
 block4c_se_reduce (Conv2D)     (None, 1, 1, 20)     9620        ['block4c_se_reshape[0][0]']     
                                                                                                  
 block4c_se_expand (Conv2D)     (None, 1, 1, 480)    10080       ['block4c_se_reduce[0][0]']      
                                                                                                  
 block4c_se_excite (Multiply)   (None, None, None,   0           ['block4c_activation[0][0]',     
                                480)                              'block4c_se_expand[0][0]']      
                                                                                                  
 block4c_project_conv (Conv2D)  (None, None, None,   38400       ['block4c_se_excite[0][0]']      
                                80)                                                               
                                                                                                  
 block4c_project_bn (BatchNorma  (None, None, None,   320        ['block4c_project_conv[0][0]']   
 lization)                      80)                                                               
                                                                                                  
 block4c_drop (Dropout)         (None, None, None,   0           ['block4c_project_bn[0][0]']     
                                80)                                                               
                                                                                                  
 block4c_add (Add)              (None, None, None,   0           ['block4c_drop[0][0]',           
                                80)                               'block4b_add[0][0]']            
                                                                                                  
 block5a_expand_conv (Conv2D)   (None, None, None,   38400       ['block4c_add[0][0]']            
                                480)                                                              
                                                                                                  
 block5a_expand_bn (BatchNormal  (None, None, None,   1920       ['block5a_expand_conv[0][0]']    
 ization)                       480)                                                              
                                                                                                  
 block5a_expand_activation (Act  (None, None, None,   0          ['block5a_expand_bn[0][0]']      
 ivation)                       480)                                                              
                                                                                                  
 block5a_dwconv (DepthwiseConv2  (None, None, None,   12000      ['block5a_expand_activation[0][0]
 D)                             480)                             ']                               
                                                                                                  
 block5a_bn (BatchNormalization  (None, None, None,   1920       ['block5a_dwconv[0][0]']         
 )                              480)                                                              
                                                                                                  
 block5a_activation (Activation  (None, None, None,   0          ['block5a_bn[0][0]']             
 )                              480)                                                              
                                                                                                  
 block5a_se_squeeze (GlobalAver  (None, 480)         0           ['block5a_activation[0][0]']     
 agePooling2D)                                                                                    
                                                                                                  
 block5a_se_reshape (Reshape)   (None, 1, 1, 480)    0           ['block5a_se_squeeze[0][0]']     
                                                                                                  
 block5a_se_reduce (Conv2D)     (None, 1, 1, 20)     9620        ['block5a_se_reshape[0][0]']     
                                                                                                  
 block5a_se_expand (Conv2D)     (None, 1, 1, 480)    10080       ['block5a_se_reduce[0][0]']      
                                                                                                  
 block5a_se_excite (Multiply)   (None, None, None,   0           ['block5a_activation[0][0]',     
                                480)                              'block5a_se_expand[0][0]']      
                                                                                                  
 block5a_project_conv (Conv2D)  (None, None, None,   53760       ['block5a_se_excite[0][0]']      
                                112)                                                              
                                                                                                  
 block5a_project_bn (BatchNorma  (None, None, None,   448        ['block5a_project_conv[0][0]']   
 lization)                      112)                                                              
                                                                                                  
 block5b_expand_conv (Conv2D)   (None, None, None,   75264       ['block5a_project_bn[0][0]']     
                                672)                                                              
                                                                                                  
 block5b_expand_bn (BatchNormal  (None, None, None,   2688       ['block5b_expand_conv[0][0]']    
 ization)                       672)                                                              
                                                                                                  
 block5b_expand_activation (Act  (None, None, None,   0          ['block5b_expand_bn[0][0]']      
 ivation)                       672)                                                              
                                                                                                  
 block5b_dwconv (DepthwiseConv2  (None, None, None,   16800      ['block5b_expand_activation[0][0]
 D)                             672)                             ']                               
                                                                                                  
 block5b_bn (BatchNormalization  (None, None, None,   2688       ['block5b_dwconv[0][0]']         
 )                              672)                                                              
                                                                                                  
 block5b_activation (Activation  (None, None, None,   0          ['block5b_bn[0][0]']             
 )                              672)                                                              
                                                                                                  
 block5b_se_squeeze (GlobalAver  (None, 672)         0           ['block5b_activation[0][0]']     
 agePooling2D)                                                                                    
                                                                                                  
 block5b_se_reshape (Reshape)   (None, 1, 1, 672)    0           ['block5b_se_squeeze[0][0]']     
                                                                                                  
 block5b_se_reduce (Conv2D)     (None, 1, 1, 28)     18844       ['block5b_se_reshape[0][0]']     
                                                                                                  
 block5b_se_expand (Conv2D)     (None, 1, 1, 672)    19488       ['block5b_se_reduce[0][0]']      
                                                                                                  
 block5b_se_excite (Multiply)   (None, None, None,   0           ['block5b_activation[0][0]',     
                                672)                              'block5b_se_expand[0][0]']      
                                                                                                  
 block5b_project_conv (Conv2D)  (None, None, None,   75264       ['block5b_se_excite[0][0]']      
                                112)                                                              
                                                                                                  
 block5b_project_bn (BatchNorma  (None, None, None,   448        ['block5b_project_conv[0][0]']   
 lization)                      112)                                                              
                                                                                                  
 block5b_drop (Dropout)         (None, None, None,   0           ['block5b_project_bn[0][0]']     
                                112)                                                              
                                                                                                  
 block5b_add (Add)              (None, None, None,   0           ['block5b_drop[0][0]',           
                                112)                              'block5a_project_bn[0][0]']     
                                                                                                  
 block5c_expand_conv (Conv2D)   (None, None, None,   75264       ['block5b_add[0][0]']            
                                672)                                                              
                                                                                                  
 block5c_expand_bn (BatchNormal  (None, None, None,   2688       ['block5c_expand_conv[0][0]']    
 ization)                       672)                                                              
                                                                                                  
 block5c_expand_activation (Act  (None, None, None,   0          ['block5c_expand_bn[0][0]']      
 ivation)                       672)                                                              
                                                                                                  
 block5c_dwconv (DepthwiseConv2  (None, None, None,   16800      ['block5c_expand_activation[0][0]
 D)                             672)                             ']                               
                                                                                                  
 block5c_bn (BatchNormalization  (None, None, None,   2688       ['block5c_dwconv[0][0]']         
 )                              672)                                                              
                                                                                                  
 block5c_activation (Activation  (None, None, None,   0          ['block5c_bn[0][0]']             
 )                              672)                                                              
                                                                                                  
 block5c_se_squeeze (GlobalAver  (None, 672)         0           ['block5c_activation[0][0]']     
 agePooling2D)                                                                                    
                                                                                                  
 block5c_se_reshape (Reshape)   (None, 1, 1, 672)    0           ['block5c_se_squeeze[0][0]']     
                                                                                                  
 block5c_se_reduce (Conv2D)     (None, 1, 1, 28)     18844       ['block5c_se_reshape[0][0]']     
                                                                                                  
 block5c_se_expand (Conv2D)     (None, 1, 1, 672)    19488       ['block5c_se_reduce[0][0]']      
                                                                                                  
 block5c_se_excite (Multiply)   (None, None, None,   0           ['block5c_activation[0][0]',     
                                672)                              'block5c_se_expand[0][0]']      
                                                                                                  
 block5c_project_conv (Conv2D)  (None, None, None,   75264       ['block5c_se_excite[0][0]']      
                                112)                                                              
                                                                                                  
 block5c_project_bn (BatchNorma  (None, None, None,   448        ['block5c_project_conv[0][0]']   
 lization)                      112)                                                              
                                                                                                  
 block5c_drop (Dropout)         (None, None, None,   0           ['block5c_project_bn[0][0]']     
                                112)                                                              
                                                                                                  
 block5c_add (Add)              (None, None, None,   0           ['block5c_drop[0][0]',           
                                112)                              'block5b_add[0][0]']            
                                                                                                  
 block6a_expand_conv (Conv2D)   (None, None, None,   75264       ['block5c_add[0][0]']            
                                672)                                                              
                                                                                                  
 block6a_expand_bn (BatchNormal  (None, None, None,   2688       ['block6a_expand_conv[0][0]']    
 ization)                       672)                                                              
                                                                                                  
 block6a_expand_activation (Act  (None, None, None,   0          ['block6a_expand_bn[0][0]']      
 ivation)                       672)                                                              
                                                                                                  
 block6a_dwconv_pad (ZeroPaddin  (None, None, None,   0          ['block6a_expand_activation[0][0]
 g2D)                           672)                             ']                               
                                                                                                  
 block6a_dwconv (DepthwiseConv2  (None, None, None,   16800      ['block6a_dwconv_pad[0][0]']     
 D)                             672)                                                              
                                                                                                  
 block6a_bn (BatchNormalization  (None, None, None,   2688       ['block6a_dwconv[0][0]']         
 )                              672)                                                              
                                                                                                  
 block6a_activation (Activation  (None, None, None,   0          ['block6a_bn[0][0]']             
 )                              672)                                                              
                                                                                                  
 block6a_se_squeeze (GlobalAver  (None, 672)         0           ['block6a_activation[0][0]']     
 agePooling2D)                                                                                    
                                                                                                  
 block6a_se_reshape (Reshape)   (None, 1, 1, 672)    0           ['block6a_se_squeeze[0][0]']     
                                                                                                  
 block6a_se_reduce (Conv2D)     (None, 1, 1, 28)     18844       ['block6a_se_reshape[0][0]']     
                                                                                                  
 block6a_se_expand (Conv2D)     (None, 1, 1, 672)    19488       ['block6a_se_reduce[0][0]']      
                                                                                                  
 block6a_se_excite (Multiply)   (None, None, None,   0           ['block6a_activation[0][0]',     
                                672)                              'block6a_se_expand[0][0]']      
                                                                                                  
 block6a_project_conv (Conv2D)  (None, None, None,   129024      ['block6a_se_excite[0][0]']      
                                192)                                                              
                                                                                                  
 block6a_project_bn (BatchNorma  (None, None, None,   768        ['block6a_project_conv[0][0]']   
 lization)                      192)                                                              
                                                                                                  
 block6b_expand_conv (Conv2D)   (None, None, None,   221184      ['block6a_project_bn[0][0]']     
                                1152)                                                             
                                                                                                  
 block6b_expand_bn (BatchNormal  (None, None, None,   4608       ['block6b_expand_conv[0][0]']    
 ization)                       1152)                                                             
                                                                                                  
 block6b_expand_activation (Act  (None, None, None,   0          ['block6b_expand_bn[0][0]']      
 ivation)                       1152)                                                             
                                                                                                  
 block6b_dwconv (DepthwiseConv2  (None, None, None,   28800      ['block6b_expand_activation[0][0]
 D)                             1152)                            ']                               
                                                                                                  
 block6b_bn (BatchNormalization  (None, None, None,   4608       ['block6b_dwconv[0][0]']         
 )                              1152)                                                             
                                                                                                  
 block6b_activation (Activation  (None, None, None,   0          ['block6b_bn[0][0]']             
 )                              1152)                                                             
                                                                                                  
 block6b_se_squeeze (GlobalAver  (None, 1152)        0           ['block6b_activation[0][0]']     
 agePooling2D)                                                                                    
                                                                                                  
 block6b_se_reshape (Reshape)   (None, 1, 1, 1152)   0           ['block6b_se_squeeze[0][0]']     
                                                                                                  
 block6b_se_reduce (Conv2D)     (None, 1, 1, 48)     55344       ['block6b_se_reshape[0][0]']     
                                                                                                  
 block6b_se_expand (Conv2D)     (None, 1, 1, 1152)   56448       ['block6b_se_reduce[0][0]']      
                                                                                                  
 block6b_se_excite (Multiply)   (None, None, None,   0           ['block6b_activation[0][0]',     
                                1152)                             'block6b_se_expand[0][0]']      
                                                                                                  
 block6b_project_conv (Conv2D)  (None, None, None,   221184      ['block6b_se_excite[0][0]']      
                                192)                                                              
                                                                                                  
 block6b_project_bn (BatchNorma  (None, None, None,   768        ['block6b_project_conv[0][0]']   
 lization)                      192)                                                              
                                                                                                  
 block6b_drop (Dropout)         (None, None, None,   0           ['block6b_project_bn[0][0]']     
                                192)                                                              
                                                                                                  
 block6b_add (Add)              (None, None, None,   0           ['block6b_drop[0][0]',           
                                192)                              'block6a_project_bn[0][0]']     
                                                                                                  
 block6c_expand_conv (Conv2D)   (None, None, None,   221184      ['block6b_add[0][0]']            
                                1152)                                                             
                                                                                                  
 block6c_expand_bn (BatchNormal  (None, None, None,   4608       ['block6c_expand_conv[0][0]']    
 ization)                       1152)                                                             
                                                                                                  
 block6c_expand_activation (Act  (None, None, None,   0          ['block6c_expand_bn[0][0]']      
 ivation)                       1152)                                                             
                                                                                                  
 block6c_dwconv (DepthwiseConv2  (None, None, None,   28800      ['block6c_expand_activation[0][0]
 D)                             1152)                            ']                               
                                                                                                  
 block6c_bn (BatchNormalization  (None, None, None,   4608       ['block6c_dwconv[0][0]']         
 )                              1152)                                                             
                                                                                                  
 block6c_activation (Activation  (None, None, None,   0          ['block6c_bn[0][0]']             
 )                              1152)                                                             
                                                                                                  
 block6c_se_squeeze (GlobalAver  (None, 1152)        0           ['block6c_activation[0][0]']     
 agePooling2D)                                                                                    
                                                                                                  
 block6c_se_reshape (Reshape)   (None, 1, 1, 1152)   0           ['block6c_se_squeeze[0][0]']     
                                                                                                  
 block6c_se_reduce (Conv2D)     (None, 1, 1, 48)     55344       ['block6c_se_reshape[0][0]']     
                                                                                                  
 block6c_se_expand (Conv2D)     (None, 1, 1, 1152)   56448       ['block6c_se_reduce[0][0]']      
                                                                                                  
 block6c_se_excite (Multiply)   (None, None, None,   0           ['block6c_activation[0][0]',     
                                1152)                             'block6c_se_expand[0][0]']      
                                                                                                  
 block6c_project_conv (Conv2D)  (None, None, None,   221184      ['block6c_se_excite[0][0]']      
                                192)                                                              
                                                                                                  
 block6c_project_bn (BatchNorma  (None, None, None,   768        ['block6c_project_conv[0][0]']   
 lization)                      192)                                                              
                                                                                                  
 block6c_drop (Dropout)         (None, None, None,   0           ['block6c_project_bn[0][0]']     
                                192)                                                              
                                                                                                  
 block6c_add (Add)              (None, None, None,   0           ['block6c_drop[0][0]',           
                                192)                              'block6b_add[0][0]']            
                                                                                                  
 block6d_expand_conv (Conv2D)   (None, None, None,   221184      ['block6c_add[0][0]']            
                                1152)                                                             
                                                                                                  
 block6d_expand_bn (BatchNormal  (None, None, None,   4608       ['block6d_expand_conv[0][0]']    
 ization)                       1152)                                                             
                                                                                                  
 block6d_expand_activation (Act  (None, None, None,   0          ['block6d_expand_bn[0][0]']      
 ivation)                       1152)                                                             
                                                                                                  
 block6d_dwconv (DepthwiseConv2  (None, None, None,   28800      ['block6d_expand_activation[0][0]
 D)                             1152)                            ']                               
                                                                                                  
 block6d_bn (BatchNormalization  (None, None, None,   4608       ['block6d_dwconv[0][0]']         
 )                              1152)                                                             
                                                                                                  
 block6d_activation (Activation  (None, None, None,   0          ['block6d_bn[0][0]']             
 )                              1152)                                                             
                                                                                                  
 block6d_se_squeeze (GlobalAver  (None, 1152)        0           ['block6d_activation[0][0]']     
 agePooling2D)                                                                                    
                                                                                                  
 block6d_se_reshape (Reshape)   (None, 1, 1, 1152)   0           ['block6d_se_squeeze[0][0]']     
                                                                                                  
 block6d_se_reduce (Conv2D)     (None, 1, 1, 48)     55344       ['block6d_se_reshape[0][0]']     
                                                                                                  
 block6d_se_expand (Conv2D)     (None, 1, 1, 1152)   56448       ['block6d_se_reduce[0][0]']      
                                                                                                  
 block6d_se_excite (Multiply)   (None, None, None,   0           ['block6d_activation[0][0]',     
                                1152)                             'block6d_se_expand[0][0]']      
                                                                                                  
 block6d_project_conv (Conv2D)  (None, None, None,   221184      ['block6d_se_excite[0][0]']      
                                192)                                                              
                                                                                                  
 block6d_project_bn (BatchNorma  (None, None, None,   768        ['block6d_project_conv[0][0]']   
 lization)                      192)                                                              
                                                                                                  
 block6d_drop (Dropout)         (None, None, None,   0           ['block6d_project_bn[0][0]']     
                                192)                                                              
                                                                                                  
 block6d_add (Add)              (None, None, None,   0           ['block6d_drop[0][0]',           
                                192)                              'block6c_add[0][0]']            
                                                                                                  
 block7a_expand_conv (Conv2D)   (None, None, None,   221184      ['block6d_add[0][0]']            
                                1152)                                                             
                                                                                                  
 block7a_expand_bn (BatchNormal  (None, None, None,   4608       ['block7a_expand_conv[0][0]']    
 ization)                       1152)                                                             
                                                                                                  
 block7a_expand_activation (Act  (None, None, None,   0          ['block7a_expand_bn[0][0]']      
 ivation)                       1152)                                                             
                                                                                                  
 block7a_dwconv (DepthwiseConv2  (None, None, None,   10368      ['block7a_expand_activation[0][0]
 D)                             1152)                            ']                               
                                                                                                  
 block7a_bn (BatchNormalization  (None, None, None,   4608       ['block7a_dwconv[0][0]']         
 )                              1152)                                                             
                                                                                                  
 block7a_activation (Activation  (None, None, None,   0          ['block7a_bn[0][0]']             
 )                              1152)                                                             
                                                                                                  
 block7a_se_squeeze (GlobalAver  (None, 1152)        0           ['block7a_activation[0][0]']     
 agePooling2D)                                                                                    
                                                                                                  
 block7a_se_reshape (Reshape)   (None, 1, 1, 1152)   0           ['block7a_se_squeeze[0][0]']     
                                                                                                  
 block7a_se_reduce (Conv2D)     (None, 1, 1, 48)     55344       ['block7a_se_reshape[0][0]']     
                                                                                                  
 block7a_se_expand (Conv2D)     (None, 1, 1, 1152)   56448       ['block7a_se_reduce[0][0]']      
                                                                                                  
 block7a_se_excite (Multiply)   (None, None, None,   0           ['block7a_activation[0][0]',     
                                1152)                             'block7a_se_expand[0][0]']      
                                                                                                  
 block7a_project_conv (Conv2D)  (None, None, None,   368640      ['block7a_se_excite[0][0]']      
                                320)                                                              
                                                                                                  
 block7a_project_bn (BatchNorma  (None, None, None,   1280       ['block7a_project_conv[0][0]']   
 lization)                      320)                                                              
                                                                                                  
 top_conv (Conv2D)              (None, None, None,   409600      ['block7a_project_bn[0][0]']     
                                1280)                                                             
                                                                                                  
 top_bn (BatchNormalization)    (None, None, None,   5120        ['top_conv[0][0]']               
                                1280)                                                             
                                                                                                  
 top_activation (Activation)    (None, None, None,   0           ['top_bn[0][0]']                 
                                1280)                                                             
                                                                                                  
==================================================================================================
Total params: 4,049,571
Trainable params: 1,350,960
Non-trainable params: 2,698,611
__________________________________________________________________________________________________
In [68]:
import datetime

def create_tensorboard_callback(dir_name, experiment_name):
    log_dir = dir_name + "/" + experiment_name + "/" + datetime.datetime.now().strftime("%Y%m%d-%H%M%S")
    tensorboard_callback = tf.keras.callbacks.TensorBoard(
        log_dir=log_dir
    )
    print(f"Saving TensorBoard log files to: {log_dir}")
    return tensorboard_callback
In [69]:
early_stopping = tf.keras.callbacks.EarlyStopping(monitor="val_loss", 
                                                  patience=3)

reduce_lr = tf.keras.callbacks.ReduceLROnPlateau(monitor="val_loss",  
                                                 factor=0.2, 
                                                 patience=2,
                                                 verbose=1, 
                                                 min_lr=1e-7)

checkpoint_path = "fine_tune_checkpoints/"
model_checkpoint = tf.keras.callbacks.ModelCheckpoint(checkpoint_path,
                                                      save_weights_only=True,
                                                      save_best_only=True,
                                                      monitor="val_loss")
In [75]:
initial_epochs = 50

history1 = feature_model.fit(train_data,epochs=initial_epochs,
                  steps_per_epoch=len(train_data),
                  validation_data=test_data,
                  validation_steps=len(test_data),
                  callbacks=[early_stopping,
                             model_checkpoint,
                             reduce_lr,
                             create_tensorboard_callback('plant_disease_model',
                                                         'EfficientNetB010')])
Saving TensorBoard log files to: plant_disease_model/EfficientNetB010/20230420-002259
WARNING:tensorflow:Model failed to serialize as JSON. Ignoring... Unable to serialize [2.0896919 2.1128857 2.1081853] to JSON. Unrecognized type <class 'tensorflow.python.framework.ops.EagerTensor'>.
Epoch 1/50
2197/2197 [==============================] - 2032s 925ms/step - loss: 0.0262 - accuracy: 0.9915 - val_loss: 0.0486 - val_accuracy: 0.9858 - lr: 0.0010
Epoch 2/50
2197/2197 [==============================] - 1926s 877ms/step - loss: 0.0201 - accuracy: 0.9932 - val_loss: 0.0337 - val_accuracy: 0.9894 - lr: 0.0010
Epoch 3/50
2197/2197 [==============================] - 1917s 873ms/step - loss: 0.0176 - accuracy: 0.9943 - val_loss: 0.0222 - val_accuracy: 0.9937 - lr: 0.0010
Epoch 4/50
2197/2197 [==============================] - 1915s 872ms/step - loss: 0.0152 - accuracy: 0.9951 - val_loss: 0.0295 - val_accuracy: 0.9910 - lr: 0.0010
Epoch 5/50
2197/2197 [==============================] - ETA: 0s - loss: 0.0135 - accuracy: 0.9955
Epoch 5: ReduceLROnPlateau reducing learning rate to 0.00020000000949949026.
2197/2197 [==============================] - 1924s 876ms/step - loss: 0.0135 - accuracy: 0.9955 - val_loss: 0.0224 - val_accuracy: 0.9935 - lr: 0.0010
Epoch 6/50
2197/2197 [==============================] - 1926s 877ms/step - loss: 0.0045 - accuracy: 0.9986 - val_loss: 0.0095 - val_accuracy: 0.9971 - lr: 2.0000e-04
Epoch 7/50
2197/2197 [==============================] - 1927s 877ms/step - loss: 0.0020 - accuracy: 0.9993 - val_loss: 0.0086 - val_accuracy: 0.9974 - lr: 2.0000e-04
Epoch 8/50
2197/2197 [==============================] - 1939s 883ms/step - loss: 0.0015 - accuracy: 0.9996 - val_loss: 0.0073 - val_accuracy: 0.9984 - lr: 2.0000e-04
Epoch 9/50
2197/2197 [==============================] - 1927s 877ms/step - loss: 0.0014 - accuracy: 0.9996 - val_loss: 0.0079 - val_accuracy: 0.9980 - lr: 2.0000e-04
Epoch 10/50
2197/2197 [==============================] - ETA: 0s - loss: 0.0010 - accuracy: 0.9997
Epoch 10: ReduceLROnPlateau reducing learning rate to 4.0000001899898055e-05.
2197/2197 [==============================] - 1927s 877ms/step - loss: 0.0010 - accuracy: 0.9997 - val_loss: 0.0081 - val_accuracy: 0.9983 - lr: 2.0000e-04
Epoch 11/50
2197/2197 [==============================] - 1925s 876ms/step - loss: 8.8545e-04 - accuracy: 0.9998 - val_loss: 0.0078 - val_accuracy: 0.9982 - lr: 4.0000e-05
In [21]:
feature_model.load_weights(checkpoint_path)
Out[21]:
<tensorflow.python.checkpoint.checkpoint.CheckpointLoadStatus at 0x1ff5dbb9c90>
In [22]:
feature_model.evaluate(test_data)
550/550 [==============================] - 344s 620ms/step - loss: 0.0073 - accuracy: 0.9984
Out[22]:
[0.007274392060935497, 0.9984065294265747]
In [48]:
def load_prep(img_path):
    img = tf.io.read_file(img_path)
    img = tf.image.decode_image(img)

    img = tf.image.resize(img,size=(224,224))

    return img
In [51]:
image = load_prep(r'E:\MINICONDA_FILES\PROJECT3\new-plant-diseases-dataset\New Plant Diseases Dataset(Augmented)\test\test\AppleCedarRust1.JPG')
plt.imshow(image/255.)
plt.title('AppleCedarRust1.JPG')
plt.suptitle(image.shape)
Out[51]:
Text(0.5, 0.98, '(224, 224, 3)')
No description has been provided for this image
In [52]:
pred = feature_model.predict(tf.expand_dims(image,axis=0))
pred
1/1 [==============================] - 1s 1s/step
Out[52]:
array([[2.8146506e-18, 5.8862948e-19, 1.0000000e+00, 4.1395038e-34,
        2.1517241e-23, 3.2229669e-32, 2.1334065e-32, 5.2606758e-22,
        1.0763121e-21, 0.0000000e+00, 1.4734510e-38, 1.9950224e-29,
        4.2448107e-31, 1.3996006e-27, 1.2440141e-27, 1.4234787e-30,
        3.6722141e-26, 1.0077134e-28, 2.8983498e-35, 1.7651298e-33,
        4.5817430e-30, 8.9002956e-38, 5.5475660e-31, 2.2018335e-32,
        4.0321307e-37, 5.5389388e-31, 5.9936374e-31, 4.5195625e-30,
        1.6416403e-32, 1.7834741e-31, 4.5583820e-30, 4.0279935e-38,
        0.0000000e+00, 0.0000000e+00, 6.3605510e-26, 5.7944998e-36,
        2.1494029e-30, 4.6401648e-34]], dtype=float32)
In [53]:
predicted_value = class_names[pred.argmax()]
predicted_value
Out[53]:
'Apple___Cedar_apple_rust'
In [54]:
def random_image_predict(model,test_dir=test_dir,class_names=class_names,rand_class=True,cls_name=None):
  if rand_class==True:
    ran_cls = random.randint(0,len(class_names))
    cls = class_names[ran_cls]
    ran_path = test_dir +'/'+ cls+ '/'+ random.choice(os.listdir(test_dir+'/'+cls))
  else:
    cls = class_names[cls_name]
    ran_path = test_dir +'/'+ cls + '/'+ random.choice(os.listdir(test_dir+'/'+cls))
  
  prep_img = load_prep(ran_path)

  pred = model.predict(tf.expand_dims(prep_img,axis=0))
  pred_cls = class_names[pred[0].argmax()]
  pred_percent = pred[0][pred[0].argmax()]*100
  plt.imshow(prep_img/255.)
  if pred_cls == cls:
    c = 'g'
  else:
    c = 'r'
  plt.title(f'actual:{cls},\npred:{pred_cls},\nprob:{pred_percent:.2f}%',color = c ,fontdict={'fontsize':10})
  plt.axis(False)
In [55]:
random_image_predict(feature_model)
1/1 [==============================] - 0s 42ms/step
No description has been provided for this image
In [57]:
plt.figure(figsize=(15,15))
for i in range(9):
  plt.subplot(3,3,i+1)
  random_image_predict(feature_model,test_dir)
1/1 [==============================] - 0s 40ms/step
1/1 [==============================] - 0s 63ms/step
1/1 [==============================] - 0s 47ms/step
1/1 [==============================] - 0s 47ms/step
1/1 [==============================] - 0s 47ms/step
1/1 [==============================] - 0s 52ms/step
1/1 [==============================] - 0s 47ms/step
1/1 [==============================] - 0s 47ms/step
1/1 [==============================] - 0s 40ms/step
No description has been provided for this image
In [58]:
data_dir=r'E:\MINICONDA_FILES\PROJECT3\new-plant-diseases-dataset\New Plant Diseases Dataset(Augmented)\test\test'
plt.figure(figsize=(15,10))
for i in range(9):
  plt.subplot(3,3,i+1)
  rn = random.choice(os.listdir(data_dir))
  image_path=os.path.join(data_dir,rn)
  img = load_prep(image_path)
  pred = feature_model.predict(tf.expand_dims(img,axis=0))
  pred_name = class_names[pred.argmax()]
  plt.imshow(img/255.)
  plt.title(f'true:{rn} \npred_class:{pred_name}')
  plt.axis(False)
1/1 [==============================] - 0s 47ms/step
1/1 [==============================] - 0s 47ms/step
1/1 [==============================] - 0s 47ms/step
1/1 [==============================] - 0s 58ms/step
1/1 [==============================] - 0s 57ms/step
1/1 [==============================] - 0s 55ms/step
1/1 [==============================] - 0s 47ms/step
1/1 [==============================] - 0s 47ms/step
1/1 [==============================] - 0s 47ms/step
No description has been provided for this image

This is how we can predict plant disease in various plant species by using CNN¶

Thank you¶