This is my implementation of the DDPG algorithm in a classic, custom cart-pole environment created by my mentor Dr. Domen Šoberl. Some pre-trained weights are to be found here, which can be used. Important to note, there are some "flags" to be found in the "util" module, with which certain logs can be controled (also the ones added subsequently, if necessary), as well as rendering and recording.
This is not a comprehensive list of all the packages used in this project, however, the packages listed are the minimum required to run the project.
Use conda (miniconda3) to install TensorFlow and all its dependencies - as per the official instructions found on TensorFlow website.
Install tf-agents
via pip WITHIN the conda environment where TensorFlow is set up.
Install gymnasium
via pip - can be a global install (unspecific to the conda environment).
Install tkinter
via pip - can be a global install (unspecific to the conda environment).
Install pygame
via pip - can be a global install (unspecific to the conda environment).
Install numpy
via pip - can be a global install (unspecific to the conda environment).
The project is structured so that its components are grouped into modules.
The main module is the ddpg, where the DDPG class and the main implementation
of the algorithm in the custom Cart-Pole environment are stored, in ddpg.py
and cartpole.py
respectively.
Therefore, the recommended way of running the main cartpole.py is:
python3 -m ddpg.cartpole
(In my case, for Debian based distro, the "python3" command is used - otherwise for RPM, Arch based distros use "python")
Similarly, running any other file from the project follows the same scheme e.g. python3 -m example.pendulum.