Awesome
MobileNetV3 TensorFlow
Unofficial implementation of MobileNetV3 architecture described in paper Searching for MobileNetV3.
This repository contains small and large MobileNetV3 architecture implemented using TensforFlow with tf.keras
API.
Google Colab
Requirements
- Python 3.6+
- TensorFlow 1.13+
pip install -r requirements.txt
Build model
MobileNetV3 Small
from mobilenetv3_factory import build_mobilenetv3
model = build_mobilenetv3(
"small",
input_shape=(224, 224, 3),
num_classes=1001,
width_multiplier=1.0,
)
MobileNetV3 Large
from mobilenetv3_factory import build_mobilenetv3
model = build_mobilenetv3(
"large",
input_shape=(224, 224, 3),
num_classes=1001,
width_multiplier=1.0,
)
Train
CIFAR10 dataset
python train.py \
--model_type small \
--width_multiplier 1.0 \
--height 128 \
--width 128 \
--dataset cifar10 \
--lr 0.01 \
--optimizer rmsprop \
--train_batch_size 256 \
--valid_batch_size 256 \
--num_epoch 10 \
--logdir logdir
MNIST dataset
python train.py \
--model_type small \
--width_multiplier 1.0 \
--height 128 \
--width 128 \
--dataset mnist \
--lr 0.01 \
--optimizer rmsprop \
--train_batch_size 256 \
--valid_batch_size 256 \
--num_epoch 10 \
--logdir logdir
Evaluate
CIFAR10 dataset
python evaluate.py \
--model_type small \
--width_multiplier 1.0 \
--height 128 \
--width 128 \
--dataset cifar10 \
--valid_batch_size 256 \
--model_path mobilenetv3_small_cifar10_10.h5
MNIST dataset
python evaluate.py \
--model_type small \
--width_multiplier 1.0 \
--height 128 \
--width 128 \
--dataset mnist \
--valid_batch_size 256 \
--model_path mobilenetv3_small_mnist_10.h5
TensorBoard
Graph, training and evaluaion metrics are saved to TensorBoard event file uder directory specified with --logdir` argument during training. You can launch TensorBoard using following command.
tensorboard --logdir logdir