Metadata-Version: 1.0
Name: antgo
Version: 0.0.10
Summary: machine learning experiment platform
Home-page: https://github.com/jianzfb/antgo
Author: jian
Author-email: jian@mltalker.com
License: UNKNOWN
Description: ======================
        Antgo
        ======================
        
        .. image:: https://raw.githubusercontent.com/jianzfb/antgo/master/antgo/resource/static/card.png
            :alt: Antgo
        
        Target
        ----------------------
        Antgo is a machine learning experiment manage platform, which has been integrated deeply with MLTalker.
        Antgo provides some easy cli commands to help ML researchers to manage, analyze, and challenge all kinds
        of ML tasks.
        
        Based on amounts of statistical evaluation methods, Antgo could give a fruitful evaluation report, which
        help researchers analyze and trade-off their model.
        
        Antgo tutorial is at `MLTalker Blog <http://www.mltalker.com/blog/>`__.
        
        Installation
        ----------------------
        1.step install Antgo::
        
            pip install antgo
        
        
        or install Antgo from source::
        
            1. git clone https://github.com/jianzfb/antgo.git
            2. cd antgo
            3. pip install -r requirements.txt
            4. python setup.py build_ext install
        
        
        2.step generate config file and modify::
        
            antgo config
        
        in current folder, you will get::
        
            config.xml
        
        content in config.xml is like this::
        
            <?xml version='1.0' encoding='utf-8'?>
            <antgo>
                <factory></factory>
                <server_ip>www.mltalker.com</server_ip>
                <server_port>8999</server_port>
                <server_user_token></server_user_token>
            </antgo>
        
        In <factory> tag, fill your local folder. In this folder, you should build
        two subfolders
        
            * dataset
                all data should put here
            * task
                all task file should put here
        
        In <server_user_token> tag, fill your user api-token. How to get your api-token, see next section.
        
        3.step update config file::
        
            antgo config --config=./config.xml
        
        
        Register
        -----------------------
        Register in `MLTalker <http://www.mltalker.com/>`__.
        
        .. image:: https://raw.githubusercontent.com/jianzfb/antgo/master/antgo/resource/static/register.png
            :alt: Antgo and MLTalker
        
        All user experiment records would be managed by MLTalker in user's personal page.
        
        Quick Example
        -----------------------
        1.step Build and Apply Task
        
        Build and Apply Task in
        
        .. image:: https://raw.githubusercontent.com/jianzfb/antgo/master/antgo/resource/static/apply.png
            :alt: Build Task in MLTalker
        
        
        2.step Create Your Project
        
        Create Your project
        
        .. image:: https://raw.githubusercontent.com/jianzfb/antgo/master/antgo/resource/static/start-experiment.png
            :alt: Get Task ApiToken in MLTalker
        
        
        antgo startproject --name=MNIST --author=xxx --token=Task API-TOKEN
        
        after that, you will get in current folder
        
        .. image:: https://raw.githubusercontent.com/jianzfb/antgo/master/antgo/resource/static/filetree.png
            :alt: file tree
        
        
        3.step write your train and predict code
        
        in MNIST_main.py, you should finish training_callback and infer_callback functions.
        
        training_callback function::
        
            def training_callback(data_source, dump_dir):
                # warning: data_source include data and label
                try:
                    # data_source.iterator_value() get generator
                    for index, (data, label) in enumerate(data_source.iterator_value()):
                        # data, label is data and its label
                        pass
                except:
                    pass
        
                # build logger to record important data
                mc = mlogger.Container()
                mc.loss = mlogger.metric.Simple('model loss')
        
                epochs = 100
                for epoch in range(epochs):
                    for _ in range(500):
                        # train model
                        ...
                        # loss value
                        loss_val = ...
                        mc.loss.update(loss_val)
        
                    # save best model
                    ...
        
        infer_callback function::
        
            def infer_callback(data_source, dump_dir):
                # warning: dont include label data
                # get dataset size
                data_size = data_source.size
                # parse data
                try:
                    # data_source.iterator_value() get generator
                    for index, data in enumerate(data_source.iterator_value()):
                        pass
                except:
                    pass
        
                # load from model from ctx.from_experiment
                # ctx.from_experiment is experiment_uuid (shell script)
        
                # run predict
                ...
        
                # record every sample predict result
                for index in range(data_size):
                    ctx.recorder.record({
                      'RESULT': (int)(score[index])
                    })
        
        
        you can go `MLTalker Blog <http://www.mltalker.com/blog/>`__, to see more cases.
        
        
        4.step Run Train Task
        
        antgo train exp
        
        
        5.step Run Challenge Task
        
        antgo challenge exp experiment_uuid
Platform: UNKNOWN
