Skip to content
/ igm Public

IGM(Intelligence Guidance Manager) for constructing AI projects

License

Notifications You must be signed in to change notification settings

igm4ai/igm

Repository files navigation

igm

PyPI PyPI - Python Version Loc Comments

Docs Deploy Code Test Badge Creation Package Release codecov

GitHub stars GitHub forks GitHub commit activity GitHub issues GitHub pulls Contributors GitHub license

IGM (Intelligence Guidance Manager for AI).

The ultimate purpose of AI is to serve science (as ai4science does), so let's call it sci-igm.

Installation

You can simply install it with pip command line from the official PyPI site.

pip install sci-igm

Or install from latest source code as follows:

git clone https://github.com/igm4ai/igm.git
cd igm
pip install . --user

Quick Start for IGM

Here is a simple example to create a hello world project:

igm new git+https://github.com/igm4ai/template-simple helloword  # create helloworld project
cd helloword
igm run  # run the helloworld project

What Happened?

After you enter the igm new <template> <proj_dir> command to your terminal, igm operate as the following stages:

  1. Initialization Stage - Check the template, if remote url or repository detected, download it to local storage.
  2. Project Creation Stage
    1. Load Step - Load the template's meta information.
    2. Inquire Step - Ask the user to provide some necessary.
    3. Build Step - Build the project based on the template, the project will be placed at <proj_dir>.
  3. Project Use Stage
    • (Optional) Prerequisite Installation - run igm run install command to install the dependencies.
    • Code Run - run igm run command to run the main project code.
    • What Scripts Are Provided? - run igm run -h to see the list of provided scripts.
    • (Optional) Other custom scripts - you can use the other scripts provided by template, or custom the extra scripts in igmeta.py.

How to Create A New Project Template

The detailed documentation is still preparing, but you can take a look at the following examples:

  • template-simple, a helloworld template example
  • template-linear-regression, a more advanced example of linear regression problem, with visualization example
  • template-resnet18, template for resnet18, including resource download and usage of tensorboard
  • IGM-di, example of usage of DI-engine, including custom complex generating of training code
  • Test Template, a test template for unittest of igm tools, more advanced usage can be found here.

For information on template syntax, see the following:

  • Jinja2, the template render framework we used in IGM.
  • potc, transform any object to readable python object, will be useful when render python source code. It is integrated into IGM with a filter named potc.

Contributing

We appreciate all contributions to improve igm, both logic and system designs. Please refer to CONTRIBUTING.md for more guides.

License

igm released under the Apache 2.0 license.