python 图片自动分类机_Image ATM是一键式工具,可以自定义方式自动化典型图像分类管道的工作流程...

Image ATM (Automated Tagging Machine)

Image ATM is a one-click tool that automates the workflow of a typical image classification pipeline in an opinionated way, this includes:

Preprocessing and validating input images and labels

Starting/terminating cloud instance with GPU support

Training

Model evaluation

Image ATM is compatible with Python 3.6 and is distributed under the Apache 2.0 license.

Installation

There are two ways to install Image ATM:

Install Image ATM from PyPI (recommended):

pip install imageatm

Install Image ATM from the GitHub source:

git clone https://github.com/idealo/imageatm.git

cd imageatm

python setup.py install

Usage

Train with CLI

Run this in your terminal

imageatm pipeline config/config_file.yml

Train without CLI

Run the data preparation:

from imageatm.components import DataPrep

dp = DataPrep(

samples_file = 'sample_configfile.json',

image_dir = 'sample_dataset/',

job_dir='sample_jobdir/'

)

dp.run(resize=True)

Run the training:

from imageatm.components import Training

trainer = Training(image_dir=dp.image_dir, job_dir=dp.job_dir)

trainer.run()

Run the evaluation:

from imageatm.components import Evaluation

evaluator = Evaluation(image_dir=dp.image_dir, job_dir=dp.job_dir)

evaluator.run()

Test

Test execution is triggered by these commands:

pip install -e ".[tests, docs]"

pytest -vs --cov=imageatm --show-capture=no --disable-pytest-warnings tests/

Transfer learning

The following pretrained CNNs from Keras can be used for transfer learning in Image-ATM:

Xception

VGG16

VGG19

ResNet50, ResNet101, ResNet152

ResNet50V2, ResNet101V2, ResNet152V2

ResNeXt50, ResNeXt101

InceptionV3

InceptionResNetV2

MobileNet

MobileNetV2

DenseNet121, DenseNet169, DenseNet201

NASNetLarge, NASNetMobile

Training is split into two phases, at first only the last dense layer gets trained, and then all layers are trained.

For each phase the learning rate is reduced after a patience period if no improvement in validation accuracy has been observed. The patience period depends on the average number of samples per class (n_per_class):

if n_per_class < 200: patience = 5 epochs

if n_per_class >= 200 and < 500: patience = 4 epochs

if n_per_class >= 500: patience = 2 epochs

Training is stopped early after a patience period that is three times the learning rate patience to allow for two learning rate adjustments before stopping training.

Contribute

We welcome all kinds of contributions. See the Contribution guide for more details.

Bump version

To bump up the version, use

bumpversion {part} setup.py

Cite this work

Please cite Image ATM in your publications if this is useful for your research. Here is an example BibTeX entry:

@misc{idealods2019imageatm,

title={Image ATM},

author={Christopher Lennan and Malgorzata Adamczyk and Gunar Maiwald and Dat Tran},

year={2019},

howpublished={\url{https://github.com/idealo/imageatm}},

}

Maintainers

Christopher Lennan, github: clennan

Malgorzata Adamczyk, github: gosia-malgosia

Gunar Maiwald: github: gunarmaiwald

Dat Tran, github: datitran

Copyright

See LICENSE for details.

TO-DOs:

We are currently using Keras 2.2. The plan is to use tf.keras once TF 2.0 is out. Currently tf.keras is buggy, especially with model saving/loading (https://github.com/tensorflow/tensorflow/issues/22697)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值