Path: blob/main/Cassava Leaf Disease Detection - Pytorch Image Classification/Cassava Leaf Disease Detection - Pytorch Tutorial.ipynb
569 views
Kernel: Python 3
Import Modules
In [5]:
Load the Dataset
In [6]:
Out[6]:
In [7]:
Out[7]:
{0: 'Cassava Bacterial Blight (CBB)',
1: 'Cassava Brown Streak Disease (CBSD)',
2: 'Cassava Green Mottle (CGM)',
3: 'Cassava Mosaic Disease (CMD)',
4: 'Healthy'}
In [8]:
Out[8]:
Exploratory Data Analysis
In [9]:
In [10]:
Out[10]:
In [11]:
Out[11]:
In [12]:
Out[12]:
In [13]:
Out[13]:
In [14]:
Out[14]:
In [15]:
Out[15]:
(array([0, 1, 2, 3, 4]),
[Text(0, 0, 'Cassava Bacterial Blight (CBB)'),
Text(1, 0, 'Cassava Mosaic Disease (CMD)'),
Text(2, 0, 'Cassava Brown Streak Disease (CBSD)'),
Text(3, 0, 'Cassava Green Mottle (CGM)'),
Text(4, 0, 'Healthy')])
Configuration and Utility Functions
In [16]:
Augmentations
In [17]:
Dataset Loader Class
In [18]:
Train Test Split
In [19]:
In [20]:
In [21]:
Out[21]:
Unique Labels [0 1 2 3 4]
In [22]:
In [23]:
Out[23]:
(tensor([[[ 0.5022, 0.8618, 0.4508, ..., -0.9192, -1.0219, -0.4054],
[-0.0458, 0.4337, 0.9303, ..., -0.7650, -0.6281, -0.6452],
[ 0.3652, 0.0398, 0.4337, ..., -1.4329, -1.1760, -1.0562],
...,
[-0.0629, -0.2856, -0.2513, ..., -1.3987, -1.5185, -1.7069],
[-0.3712, -0.3541, -0.1999, ..., -1.4329, -1.5357, -1.6213],
[ 0.0056, 0.1254, -0.1657, ..., -1.3987, -1.5185, -1.6384]],
[[ 0.5903, 0.9405, 0.5553, ..., -1.4055, -1.6506, -0.8803],
[-0.1275, 0.4853, 1.1856, ..., -1.0903, -1.0728, -0.9853],
[-0.2150, -0.4076, 0.2752, ..., -1.5630, -1.4755, -1.2654],
...,
[ 0.8004, 0.4678, 0.3978, ..., -0.6176, -0.7227, -0.9153],
[ 0.3627, 0.3452, 0.4678, ..., -0.6702, -0.7577, -0.8277],
[ 0.5903, 0.7304, 0.4853, ..., -0.6527, -0.7402, -0.8452]],
[[-0.1487, 0.3568, -0.0092, ..., -1.4210, -1.6302, -1.3164],
[-0.7413, -0.0267, 0.6879, ..., -1.3164, -1.2293, -1.4907],
[-0.5844, -0.6890, 0.0082, ..., -1.8044, -1.5953, -1.6476],
...,
[-1.0027, -1.5081, -1.7870, ..., -1.4559, -1.4559, -1.5779],
[-1.6127, -1.7173, -1.7347, ..., -1.3861, -1.4559, -1.5256],
[-1.5953, -1.5430, -1.6999, ..., -1.2816, -1.4210, -1.5430]]]),
tensor(3))
Use Pretrained Model (Transfer Learning)
In [24]:
In [25]:
Out[25]:
Downloading: "https://download.pytorch.org/models/resnet152-394f9c45.pth" to /root/.cache/torch/hub/checkpoints/resnet152-394f9c45.pth
0%| | 0.00/230M [00:00<?, ?B/s]
In [26]:
In [27]:
In [28]:
In [29]:
In [30]:
Out[30]:
58,669,637 total parameters
58,669,637 training parameters
Steps for Training and Validation
In [31]:
In [32]:
Out[32]:
Epoch 0/4
---------------
train Loss: 1.2207 Acc: 0.5154
val Loss: 0.6961 Acc: 0.7460
Epoch 1/4
---------------
train Loss: 0.7270 Acc: 0.7339
val Loss: 0.6009 Acc: 0.7867
Epoch 2/4
---------------
train Loss: 0.6226 Acc: 0.7768
val Loss: 0.5246 Acc: 0.8185
Epoch 3/4
---------------
train Loss: 0.5751 Acc: 0.7982
val Loss: 0.6119 Acc: 0.7964
Epoch 4/4
---------------
train Loss: 0.5003 Acc: 0.8212
val Loss: 0.4741 Acc: 0.8452
Training completes in 30m 54s
Best Val Acc: 0.8452
In [ ]:
In [ ]:
In [ ]:
In [ ]:
In [ ]:
Testing the Model
In [33]:
In [34]:
In [35]:
In [36]:
Out[36]:
array([3, 1, 3, 3, 2])
In [37]:
Out[37]:
array([3, 4, 3, 3, 2])