Boilerplate code example after creating algorithm
This algorithm is designed to be run with the vantage6 infrastructure for distributed analysis and learning.
The base code for this algorithm has been created via the v6-algorithm-template template generator.
Note that the template generator does not create a completely ready-to-use algorithm yet. There are still a number of things you have to do yourself. Please ensure to execute the following steps. The steps are also indicated with TODO statements in the generated code - so you can also simply search the code for TODO instead of following the checklist below.
- Include a URL to your code repository in setup.py.
- Implement your algorithm functions.
- You are free to add more arguments to the functions. Be sure to add them
after the
client
and dataframe arguments. - When adding new arguments, if you run the
test/test.py
script, be sure to include values for these arguments in theclient.task.create()
calls that are available there.
- You are free to add more arguments to the functions. Be sure to add them
after the
- If you are using Python packages that are not in the standard library, add
them to the
requirements.txt
andsetup.py
file. - Fill in the documentation template. This will help others to understand your algorithm, be able to use it safely, and to contribute to it.
- If you want to submit your algorithm to a vantage6 algorithm store, be sure
to fill in everything in
algorithm_store.json
(and be sure to update it if you change function names, arguments, etc.). - Finally, remove this checklist section to keep the README clean.
To finally run your algorithm on the vantage6 infrastructure, you need to create a Docker image of your algorithm.
A Docker image can be created by executing the following command in the root of your algorithm directory:
docker build -t [my_docker_image_name] .
where you should provide a sensible value for the Docker image name. The
docker build
command will create a Docker image that contains your algorithm.
You can create an additional tag for it by running
docker tag [my_docker_image_name] [another_image_name]
This way, you can e.g. do
docker tag local_average_algorithm harbor2.vantage6.ai/algorithms/average
to
make the algorithm available on a remote Docker registry (in this case
harbor2.vantage6.ai
).
Finally, you need to push the image to the Docker registry. This can be done by running
docker push [my_docker_image_name]
Note that you need to be logged in to the Docker registry before you can push
the image. You can do this by running docker login
and providing your
credentials. Check this page
For more details on sharing images on Docker Hub. If you are using a different
Docker registry, check the documentation of that registry and be sure that you
have sufficient permissions.