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
.
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
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
After you enter the igm new <template> <proj_dir>
command to your terminal, igm operate as the following stages:
- Initialization Stage - Check the template, if remote url or repository detected, download it to local storage.
- Project Creation Stage
- Load Step - Load the template's meta information.
- Inquire Step - Ask the user to provide some necessary.
- Build Step - Build the project based on the template, the project will be placed at
<proj_dir>
.
- 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
.
- (Optional) Prerequisite Installation - run
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
.
We appreciate all contributions to improve igm
, both logic and system designs. Please refer to CONTRIBUTING.md
for more guides.
igm
released under the Apache 2.0 license.