Moad Computer, the actionable insights company
  • Home
  • Contact
  • Shop
  • Blog
  • Home
  • Contact
  • Shop
  • Blog
Search

Actionable Insights blog




Building a simple diabetic retinopathy classifier with attention

4/30/2022

0 Comments

 
Picture

Dr. Rahul Remanan

CEO, Moad Computer

Described in this article is a simple deep convolutional network (CNN), with a state-of-the-art EfficientNet backbone and an attention attention mechanism, to classify the severity of diabetic retinopathy in retinal images. The model can be trained using the publicly available diabetic retinopathy dataset on Kaggle.
Open in Kaggle
Configuration
Open in Kaggle
Imports
Open in Kaggle
​Manage training data
Specify paths for the training files
Helper function to run Linux commands within Python
Unzip the training data
Create and process training dataframe
image level PatientId path exists eye level_cat
20803 26226_right 0 26226 /tmp/train/train/26226_right.jpeg True 0 [1.0, 0.0, 0.0, 0.0, 0.0]
16437 20592_right 0 20592 /tmp/train/train/20592_right.jpeg True 0 [1.0, 0.0, 0.0, 0.0, 0.0]
418 483_left 0 483 /tmp/train/train/483_left.jpeg True 1 [1.0, 0.0, 0.0, 0.0, 0.0]
Histogram summary of the training dataframe
Picture
Open in Kaggle
Train-validation split
Open in Kaggle
Balance the training data
Picture
Open in Kaggle
Train and validation data generators
Open and process images
Open in Kaggle
Data generators
Open in Kaggle
Visualize the data generator outputs
Visualize train data generator
Picture
Visualize validation data generator
Picture
Open in Kaggle
Attention mechanism
Open in Kaggle
Diabetic retinopathy classifier
Open in Kaggle
Model summary
Model: "model"
__________________________________________________________________________________________________
Layer (type)                    Output Shape         Param #     Connected to                     
==================================================================================================
input_2 (InputLayer)            [(None, 512, 512, 3) 0                                            
__________________________________________________________________________________________________
efficientnetb0 (Functional)     (None, 16, 16, 1280) 4049571     input_2[0][0]                    
__________________________________________________________________________________________________
retina_model_bn_inp (BatchNorma (None, 16, 16, 1280) 5120        efficientnetb0[0][0]             
__________________________________________________________________________________________________
retina_model_attn_dropout_in (D (None, 16, 16, 1280) 0           retina_model_bn_inp[0][0]        
__________________________________________________________________________________________________
retina_model_attn_conv2D_64 (Co (None, 16, 16, 64)   81984       retina_model_attn_dropout_in[0][0
__________________________________________________________________________________________________
retina_model_attn_conv2D_16 (Co (None, 16, 16, 16)   1040        retina_model_attn_conv2D_64[0][0]
__________________________________________________________________________________________________
retina_model_attn_conv2D_8 (Con (None, 16, 16, 8)    136         retina_model_attn_conv2D_16[0][0]
__________________________________________________________________________________________________
retina_model_attn_conv2D_1 (Con (None, 16, 16, 1)    9           retina_model_attn_conv2D_8[0][0] 
__________________________________________________________________________________________________
retina_model_attn_final (Conv2D (None, 16, 16, 1280) 1280        retina_model_attn_conv2D_1[0][0] 
__________________________________________________________________________________________________
retina_model_attn_out (Multiply (None, 16, 16, 1280) 0           retina_model_attn_final[0][0]    
                                                                 retina_model_attn_dropout_in[0][0
__________________________________________________________________________________________________
retina_model_gap_feat (GlobalAv (None, 1280)         0           retina_model_attn_final[0][0]    
__________________________________________________________________________________________________
retina_model_gap_mask (GlobalAv (None, 1280)         0           retina_model_attn_out[0][0]      
__________________________________________________________________________________________________
retina_model_reshape_feat (Resh (None, 1, 1280)      0           retina_model_gap_feat[0][0]      
__________________________________________________________________________________________________
retina_model_reshape_mask (Resh (None, 1, 1280)      0           retina_model_gap_mask[0][0]      
__________________________________________________________________________________________________
retina_model_gap_rescale (Lambd (None, 1, 1280)      0           retina_model_reshape_feat[0][0]  
                                                                 retina_model_reshape_mask[0][0]  
__________________________________________________________________________________________________
retina_model_gap_dropout (Dropo (None, 1, 1280)      0           retina_model_gap_rescale[0][0]   
__________________________________________________________________________________________________
retina_model_fc_dense_128 (Dens (None, 1, 128)       163968      retina_model_gap_dropout[0][0]   
__________________________________________________________________________________________________
retina_model_fc_dropout (Dropou (None, 1, 128)       0           retina_model_fc_dense_128[0][0]  
__________________________________________________________________________________________________
retina_model_output (Dense)     (None, 1, 5)         645         retina_model_fc_dropout[0][0]    
==================================================================================================
Total params: 4,303,753
Trainable params: 250,342
Non-trainable params: 4,053,411
__________________________________________________________________________________________________
None
Open in Kaggle
Train model
Open in Kaggle
Visualize attention mechanism
Open in Kaggle
References:
1. This code article is forked and modified from the diabetic retinopathy detection notebook authored by @manifoldix
2. Kaggle diabetic retinopathy dataset
0 Comments

Your comment will be posted after it is approved.


Leave a Reply.

    Overview

    Moad Computer is an actionable insights firm. We provide enterprises with end-to-end artificial intelligence solutions. Actionable Insights blog is a quick overview of things we are most excited about.

    Archives

    November 2022
    October 2022
    September 2022
    August 2022
    July 2022
    June 2022
    May 2022
    April 2022
    March 2022
    February 2022
    January 2022
    December 2021
    November 2021
    October 2021
    September 2021
    August 2021
    July 2021
    June 2021
    May 2021
    April 2021
    March 2021
    February 2021
    January 2021
    December 2020
    November 2020
    October 2020
    May 2020
    April 2020

    Categories

    All

    RSS Feed

Location

Our mission:

Cutting edge, insightful analytics using AI, for everyone.

Contact Us

    Subscribe Today!

Submit
  • Home
  • Contact
  • Shop
  • Blog