TensorFlow implementation of the Xception Model by François Chollet, based on the paper: Xception: Deep Learning with Depthwise Separable Convolutions.
As an example, the model will be trained on the Flowers dataset.
- xception.py: The model implementation file.
- xception_preprocessing.py: This is the exact same preprocessing used for inception models.
- xception_test.py: A test file to check for the correctness of the model implementation. Can be executed by itself.
- write_pb.py: A file to freeze your graph for inference purposes after training your model.
- train_flowers.py: An example script to train an Xception model on the flowers dataset.
- eval_flowers.py: An example script to evaluate your trained Xception model.
- dataset: A folder containing the flowers dataset prepared in TFRecords format.
- run
python train_flowers.py
from the root directory to start training your Xception model from scratch on the Flowers dataset. A log directory will be created. - run
tensorboard --logdir=log
on the root directory to get your tensorboard visualizations. - Tweak around with the hyperparameters and have fun! :D
You can simply change the dataset files and the appropriate names (i.e. anything that has the name 'flowers') to use the network for your own purposes. Importantly, you should be able to obtain the TFRecord files for your own dataset to start training as the data pipeline is dependent on TFRecord files. To learn more about preparing a dataset with TFRecord files, see this guide for a reference.
- Xception: Deep Learning with Depthwise Separable Convolutions.
- Code from the transfer learning guide
- Keras implementation of the model
- TF-Slim layers reference
If you are using this work in your research, please consider citing:
@misc{kwot_sin_lee_2017_3403277,
author = {Kwot Sin Lee},
title = {kwotsin/TensorFlow-Xception: TensorFlow-Xception},
month = may,
year = 2017,
doi = {10.5281/zenodo.3403277},
url = {https://doi.org/10.5281/zenodo.3403277}
}