Skip to content

srijiths/image-classification

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 

Repository files navigation

Image Classification using tf.data and tf.keras

This project helps understand the usage of tf.data.Dataset and tf.keras API in image classifcation tasks.

Requirements

  • python3
  • tensorflow 1.12.0
  • sklearn

Command-line arguments

  • Input Parameters
    • --data_dir : Directory contains train images. Expecting a directory structure like below. Sub directory names are the class labels.
    ├── train
       ├── Class_Label_1
          ├── Class_Label_1_1139.jpg
          ├── Class_Label_1_1140.jpg
       ├── Class_Label_2
          ├── Class_Label_2_1139.jpg
          ├── Class_Label_2_1140.jpg
       ├── Class_Label_3
          ├── Class_Label_3_1139.jpg
          ├── Class_Label_3_1140.jpg
    • --seed : Random seed to re-produce train-test split
    • --batch_size : Train batch size to fetch from tf.data.Dataset
    • --no_threads : Number of threads to run pre-processing and augmentation process with in tf.data.Dataset.map
    • --mode : Mode to execute. train or test
  • Train Parameters
    • --no_epochs : Number of epochs
    • --no_class : Total number of class labels in the training data
    • --epochs_steps : Total number of epoch steps per epoch
    • --val_split_ratio : Validation split ratio
  • Pre-process/Augmentation Parameters
    • --center_crop : Whether to perform center crop or not.
    • --crop_size : If --center_crop enabled , provide --crop_size
    • --resize : Whether to resize images or not.
    • --image_size : If --resize enabled , then provide --image_size
    • --flip : If enabled , images will be flipped horizontally left to right
    • --transpose : If enabled , images will be transposed
    • --random_augment : If enabled , random hue, saturation, brightness and contrast will be applied to images.
  • Output Parameters
    • --model_dir : Directory to checkpoint model at each epoch, write model json and model.h5
    • --log_dir : Direcory to write logs
  • Test Parameters
    • --test_dir : Test directory containing test images to evaluvate and predict. Structure should be same as above.
    • --model_file' : File path of stored model.h5 file

Training and Validation

python train.py --resize --image_size 300 --center_crop --crop_size 1000 --epochs_steps 50 --no_epochs 100 --data_dir ../data/train_val --no_class 20 --batch_size 128 --flip --transpose --random_augment --mode train

Evaluvate and Predict

python train.py --resize --image_size 300 --center_crop --crop_size 1000 --test_dir ../data/test/ --model_file ../model/model.h5 --mode test

--center_crop and --resize applied at the training phase has to be replicated for test mode with excat --image_size and --crop_size

About

Image classification using tf.data and tf.keras API

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Languages