All Projects → conan7882 → Googlenet Inception

conan7882 / Googlenet Inception

Licence: mit
TensorFlow implementation of GoogLeNet and Inception for image classification.

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Googlenet Inception

img classification deep learning
No description or website provided.
Stars: ✭ 19 (-91.74%)
Mutual labels:  image-classification, inception
pigallery
PiGallery: AI-powered Self-hosted Secure Multi-user Image Gallery and Detailed Image analysis using Machine Learning, EXIF Parsing and Geo Tagging
Stars: ✭ 35 (-84.78%)
Mutual labels:  image-classification, inception
Dogs vs cats
猫狗大战
Stars: ✭ 570 (+147.83%)
Mutual labels:  image-classification, inception
Tensorflow Tutorials
텐서플로우를 기초부터 응용까지 단계별로 연습할 수 있는 소스 코드를 제공합니다
Stars: ✭ 2,096 (+811.3%)
Mutual labels:  inception
Mobilenetv3
A Keras implementation of MobileNetV3.
Stars: ✭ 181 (-21.3%)
Mutual labels:  image-classification
Dataturks
ML data annotations made super easy for teams. Just upload data, add your team and build training/evaluation dataset in hours.
Stars: ✭ 200 (-13.04%)
Mutual labels:  image-classification
Ml Classifier Ui
A UI tool for quickly training image classifiers in the browser
Stars: ✭ 224 (-2.61%)
Mutual labels:  image-classification
Imgclsmob
Sandbox for training deep learning networks
Stars: ✭ 2,405 (+945.65%)
Mutual labels:  image-classification
Archery
SQL 审核查询平台
Stars: ✭ 3,279 (+1325.65%)
Mutual labels:  inception
Deep Learning With Python
Deep learning codes and projects using Python
Stars: ✭ 195 (-15.22%)
Mutual labels:  image-classification
Deepdetect
Deep Learning API and Server in C++14 support for Caffe, Caffe2, PyTorch,TensorRT, Dlib, NCNN, Tensorflow, XGBoost and TSNE
Stars: ✭ 2,306 (+902.61%)
Mutual labels:  image-classification
Transformer In Transformer
Implementation of Transformer in Transformer, pixel level attention paired with patch level attention for image classification, in Pytorch
Stars: ✭ 176 (-23.48%)
Mutual labels:  image-classification
Group Normalization Tensorflow
A TensorFlow implementation of Group Normalization on the task of image classification
Stars: ✭ 205 (-10.87%)
Mutual labels:  image-classification
Vit
An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale
Stars: ✭ 176 (-23.48%)
Mutual labels:  image-classification
Pixel level land classification
Tutorial demonstrating how to create a semantic segmentation (pixel-level classification) model to predict land cover from aerial imagery. This model can be used to identify newly developed or flooded land. Uses ground-truth labels and processed NAIP imagery provided by the Chesapeake Conservancy.
Stars: ✭ 217 (-5.65%)
Mutual labels:  image-classification
Torchdistill
PyTorch-based modular, configuration-driven framework for knowledge distillation. 🏆18 methods including SOTA are implemented so far. 🎁 Trained models, training logs and configurations are available for ensuring the reproducibiliy.
Stars: ✭ 177 (-23.04%)
Mutual labels:  image-classification
Transfer Learning Suite
Transfer Learning Suite in Keras. Perform transfer learning using any built-in Keras image classification model easily!
Stars: ✭ 212 (-7.83%)
Mutual labels:  image-classification
Nude.js
Nudity detection with JavaScript and HTMLCanvas
Stars: ✭ 2,236 (+872.17%)
Mutual labels:  image-classification
Igcv3
Code and Pretrained model for IGCV3
Stars: ✭ 191 (-16.96%)
Mutual labels:  image-classification
Imageatm
Image classification for everyone.
Stars: ✭ 201 (-12.61%)
Mutual labels:  image-classification

GoogLeNet for Image Classification

  • This repository contains the examples of natural image classification using pre-trained model as well as training a Inception network from scratch on CIFAR-10 dataset (93.64% accuracy on testing set). The pre-trained model on CIFAR-10 can be download from here.
  • Architecture of GoogLeNet from the paper: googlenet

Requirements

Implementation Details

For testing the pre-trained model

  • Images are rescaled so that the smallest side equals 224 before fed into the model. This is not the same as the original paper which is an ensemble of 7 similar models using 144 224x224 crops per image for testing. So the performance will not be as good as the original paper.

For training from scratch on CIFAR-10

  • All the LRN layers are removed from the convolutional layers.
  • Batch normalization and ReLU activation are used in all the convolutional layers including the layers in Inception structure except the output layer.
  • Two auxiliary classifiers are used as mentioned in the paper, though 512 instead of 1024 hidden units are used in the two fully connected layers to reduce the computation. However, I found the results are almost the same on CIFAR-10 with and without auxiliary classifiers.
  • Since the 32 x 32 images are down-sampled to 1 x 1 before fed into inception_5a, this makes the multi-scale structure of inception layers less useful and harm the performance (around 80% accuracy). To make full use of the multi-scale structures, the stride of the first convolutional layer is reduced to 1 and the first two max pooling layers are removed. The the feature map (32 x 32 x channels) will have almost the same size as described in table 1 (28 x 28 x channel) in the paper before fed into inception_3a. I have also tried only reduce the stride or only remove one max pooling layer. But I found the current setting provides the best performance on the testing set.
  • During training, dropout with keep probability 0.4 is applied to two fully connected layers and weight decay with 5e-4 is used as well.
  • The network is trained through Adam optimizer. Batch size is 128. The initial learning rate is 1e-3, decays to 1e-4 after 30 epochs, and finally decays to 1e-5 after 50 epochs.
  • Each color channel of the input images are subtracted by the mean value computed from the training set.

Usage

ImageNet Classification

Preparation

  • Download the pre-trained parameters here. This is original from here.
  • Setup path in examples/inception_pretrained.py: PRETRINED_PATH is the path for pre-trained model. DATA_PATH is the path to put testing images.

Run

Go to examples/ and put test image in folder DATA_PATH, then run the script:

python inception_pretrained.py --im_name PART_OF_IMAGE_NAME
  • --im_name is the option for image names you want to test. If the testing images are all png files, this can be png. The default setting is .jpg.
  • The output will be the top-5 class labels and probabilities.

Train the network on CIFAR-10

Preparation

  • Download CIFAR-10 dataset from here
  • Setup path in examples/inception_cifar.py: DATA_PATH is the path to put CIFAR-10. SAVE_PATH is the path to save or load summary file and trained model.

Train the model

Go to examples/ and run the script:

python inception_cifar.py --train \
  --lr LEARNING_RATE \
  --bsize BATCH_SIZE \
  --keep_prob KEEP_PROB_OF_DROPOUT \
  --maxepoch MAX_TRAINING_EPOCH
  • Summary and model will be saved in SAVE_PATH. One pre-trained model on CIFAR-10 can be downloaded from here.

Evaluate the model

Go to examples/ and put the pre-trained model in SAVE_PATH. Then run the script:

python inception_cifar.py --eval \
  --load PRE_TRAINED_MODEL_ID
  • The pre-trained ID is epoch ID shown in the save modeled file name. The default value is 99, which indicates the one I uploaded.
  • The output will be the accuracy of training and testing set.

Results

Image classification using pre-trained model

  • Top five predictions are shown. The probabilities are shown keeping two decimal places. Note that the pre-trained model are trained on ImageNet.
  • Result of VGG19 for the same images can be found here. The pre-processing of images for both experiments are the same.
Data Source Image Result
COCO 1: probability: 1.00, label: brown bear, bruin, Ursus arctos
2: probability: 0.00, label: ice bear, polar bear
3: probability: 0.00, label: hyena, hyaena
4: probability: 0.00, label: chow, chow chow
5: probability: 0.00, label: American black bear, black bear
COCO 1: probability: 0.79, label: street sign
2: probability: 0.06, label: traffic light, traffic signal, stoplight
3: probability: 0.03, label: parking meter
4: probability: 0.02, label: mailbox, letter box
5: probability: 0.01, label: balloon
COCO 1: probability: 0.94, label: trolleybus, trolley coach
2: probability: 0.05, label: passenger car, coach, carriage
3: probability: 0.00, label: fire engine, fire truck
4: probability: 0.00, label: streetcar, tram, tramcar, trolley
5: probability: 0.00, label: minibus
COCO 1: probability: 0.35, label: burrito
2: probability: 0.17, label: potpie
3: probability: 0.14, label: mashed potato
4: probability: 0.10, label: plate
5: probability: 0.03, label: pizza, pizza pie
ImageNet 1: probability: 1.00, label: goldfish, Carassius auratus
2: probability: 0.00, label: rock beauty, Holocanthus tricolor
3: probability: 0.00, label: puffer, pufferfish, blowfish, globefish
4: probability: 0.00, label: tench, Tinca tinca
5: probability: 0.00, label: anemone fish
Self Collection 1: probability: 0.32, label: Egyptian cat
2: probability: 0.30, label: tabby, tabby cat
3: probability: 0.05, label: tiger cat
4: probability: 0.02, label: mouse, computer mouse
5: probability: 0.02, label: paper towel
Self Collection 1: probability: 1.00, label: streetcar, tram, tramcar, trolley, trolley car
2: probability: 0.00, label: passenger car, coach, carriage
3: probability: 0.00, label: trolleybus, trolley coach, trackless trolley
4: probability: 0.00, label: electric locomotive
5: probability: 0.00, label: freight car

Train the network from scratch on CIFAR-10

  • Here is a similar experiment using VGG19.

learning curve for training set

train_lc

learning curve for testing set

  • The accuracy on testing set is 93.64% around 100 epochs. We can observe the slightly over-fitting behavior at the end of training.

valid_lc

Author

Qian Ge

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].