Commit Graph

337 Commits

Author SHA1 Message Date
Christopher McCarthy
3186fcb489 Merged PR 121: #1629 - Added rllib test
## Summary
Quick test that uses RLLIB in a session

## Test process
The learning session completes then we check that the number of rows in both the average reward per episode and all transactions csv files.

## Checklist
- [X] This PR is linked to a **work item**
- [X] I have performed **self-review** of the code
- [X] I have written **tests** for any new functionality added with this PR
- [ ] I have updated the **documentation** if this PR changes or adds functionality
- [X] I have run **pre-commit** checks for code style

#1629 - Added rllib test

Related work items: #1629
2023-07-17 17:28:51 +00:00
Czar Echavez
89fd8fb8dc Merged PR 119: Loading SB3 Agents + Loading agent via PrimaiteSession
## Summary
- Added a feature which allows a user to load a previous SB3 session
- Added a feature which allows a user to load a previous PrimaiteSession
- Added a feature which allows a user to load a previous session via the CLI: `primaite session --load "<SESSION_PATH>"`
- RLlib is TODO in another ticket #1626
- Parallel tests via the [pytest-xdist](https://pypi.org/project/pytest-xdist/) dependency (MIT licensed)
- Moved hardcoded agent into hardcoded_abc.py
- renamed agent.py to agent_abc.py to clarify it is an abstract base class
- Added documentation to clarify how to use the feature via CLI or using the run function via main.py

## Test process
Created [test_session_loading.py](https://dev.azure.com/ma-dev-uk/PrimAITE/_git/PrimAITE/pullrequest/119?_a=files&path=/tests/test_session_loading.py) which loads a previously run session and then performs a learn and evaluation run on the loaded agent/Primate session.

The test copies the saved session into a temporary folder, which is then set as the test session path. Once the test is done, the temporary folder should then be deleted

## Checklist
- [X] This PR is linked to a **work item**
- [X] I have performed **self-review** of the code
- [X] I have written **tests** for any new functionality added with this PR
- [X] I have updated the **documentation** if this PR changes or adds functionality
- [X] I have run **pre-commit** checks for code style

Related work items: #1595
2023-07-17 15:26:42 +00:00
Czar Echavez
1d0a211b44 Merge branch 'dev' into feature/1595-finalise-and-test-the-loading-of-trained-agents 2023-07-17 15:23:46 +01:00
Brian Kanyora
12339aa970 Merged PR 113: feature/1597-Getting-Started
## Summary
Add a Getting started page to the docs file.

## Checklist
- [x] This PR is linked to a **work item**
- [x] I have performed **self-review** of the code
- [na] I have written **tests** for any new functionality added with this PR
- [x] I have updated the **documentation** if this PR changes or adds functionality
- [x] I have run **pre-commit** checks for code style

Related work items: #1597
2023-07-17 14:19:16 +00:00
Chris McCarthy
ee0c797c3c #1629 - Added assertion in the test that checks the length of the all transactions file too.
- Added supporting function on the TempPrimaiteSession class that reads the all transactions csv file.
- Some renaming of the functions.
2023-07-17 12:14:47 +01:00
Czar Echavez
6cb475ecdc #1595: set default tc and ldc to None for AgentABC and PrimaiteSession + adding a comment for cli load flag 2023-07-17 11:54:54 +01:00
Chris McCarthy
0732eb2f5c #1629 - Added rllib test 2023-07-17 11:50:07 +01:00
Brian Kanyora
9374646758 Merge remote-tracking branch 'origin/dev' into feature/1597-Getting-Started 2023-07-17 10:33:59 +01:00
Brian Kanyora
ff6c8c0c6b Apply suggestions from code review 2023-07-17 09:23:11 +00:00
Czar Echavez
232908ac00 #1595: minor fix to cli command 2023-07-14 16:04:34 +01:00
Czar Echavez
c783965001 #1595: added loading sessions to run command + test + documentation for how to use loading sessions 2023-07-14 15:51:38 +01:00
Czar.Echavez
fbdb8aab28 #1595:
- Added ability to load sessions via PrimaiteSession
- PrimaiteSession loading test
- Added a NotImplemented RLlib loading for now
- Added the ability to load sessions for hardcoded agents
- Moved Session metadata parsing to utils
2023-07-14 14:14:03 +01:00
Czar Echavez
dce0d10383 #1595: fix poorly merged tests + files 2023-07-14 11:21:59 +01:00
Czar Echavez
a92ef3f4ad #1595: test to make sure that the loaded agent trains + remove unnecessary files + fixing agent save output name 2023-07-14 10:56:28 +01:00
Czar Echavez
bc7c32697f Merge branch 'dev' into feature/1595-finalise-and-test-the-loading-of-trained-agents 2023-07-14 08:39:52 +01:00
Czar.Echavez
c3023d4d7c #1595 missed hardcoded_abc file in commit 2023-07-13 16:24:30 +01:00
Czar.Echavez
e2d5f0bcff #1595:
- SB3 Agent loading
- rename agent.py -> agent_abc.py
- rename hardcoded.py -> hardcoded_abc.py
- Tests
- Added in test asset that is used to load the SB3 Agent
2023-07-13 16:24:03 +01:00
Brian Kanyora
345b89d5ee feature/1597:
Added dependencies to the index.rst since v1.1.0.
2023-07-13 09:36:04 +01:00
Brian Kanyora
3874d08a7e feature/1597:
Added dependencies to the index.rst since v1.1.0.
2023-07-13 09:35:42 +01:00
Marek Wolan
f3809054bf Merged PR 116: Update documentation
## Summary
* Update observation space information and standardise formatting of code blocks in that section
* Remove non-ascii quotation characters
* Update custom blue agent page to match new AgentSession classes.
* Introduce glossary
* Provide a first draft of migration guide for 1.2 to 2.0 (probably not comprehensive)

## Test process
Sphinx is able to build the documentation as checked on my local machine

## Checklist
- [x] This PR is linked to a **work item**
- [x] I have performed **self-review** of the code
- [ ] I have written **tests** for any new functionality added with this PR
- [x] I have updated the **documentation** if this PR changes or adds functionality
- [x] I have run **pre-commit** checks for code style

Related work items: #1602
2023-07-12 14:28:41 +00:00
Sunil Samra
8caec4eaa1 Merged PR 115: Configure Different Episode and Step Counts for Training and Evaluation
## Summary
Training configs now have 2 different types of episode and step counts - one for train and one for evaluation.

`num_train_episodes`
`num_train_steps`
`num_eval_episodes`
`num_eval_steps`

## Test process
A test file `test_train_eval_episode_steps.py` has been implemented which runs train and evaluation session on two particular configs.

The train and evaluation sessions have different episodes and step count and the test checks that the output log files have the correct number of `total_steps` and `total_episodes`.

## Checklist
- [X] This PR is linked to a **work item**
- [X] I have performed **self-review** of the code
- [X] I have written **tests** for any new functionality added with this PR
- [X] I have updated the **documentation** if this PR changes or adds functionality
- [X] I have run **pre-commit** checks for code style

Related work items: #1566, #1589
2023-07-12 13:34:58 +00:00
Czar Echavez
54e4da1250 #1595: run tests in parallel 2023-07-12 12:04:26 +01:00
SunilSamra
bd8d9f278d 1566 - removed redundant config file 2023-07-12 09:52:54 +01:00
Marek Wolan
5d5d70c0b6 Add better hyperlinks 2023-07-12 09:16:40 +01:00
SunilSamra
92f94b7be7 Merge remote-tracking branch 'origin/dev' into feature/1566-configure_episode-steps-learn-eval 2023-07-11 17:18:05 +01:00
Chris McCarthy
8eba54f81c #1597 - Fixed Project Links side bar 2023-07-11 15:50:37 +01:00
Chris McCarthy
32f2444102 Merge remote-tracking branch 'origin/feature/1597-Getting-Started' into feature/1597-Getting-Started
# Conflicts:
#	docs/source/getting_started.rst
2023-07-11 15:47:47 +01:00
Chris McCarthy
646ac3cf02 #1597 - Added code tabs to getting started page 2023-07-11 15:47:13 +01:00
Czar.Echavez
e51391b0cf #1595: Moved hardcoded agent into its own file 2023-07-11 15:03:02 +01:00
Brian Kanyora
70798b6c04 Added a space 2023-07-11 14:15:02 +01:00
Brian Kanyora
e99560f720 Addressing Sunils comments from my 2023-07-11 13:49:01 +01:00
Marek Wolan
fdec452e7a Merge remote-tracking branch 'origin/dev' into feature/1602-update-docs 2023-07-11 13:13:02 +01:00
Marek Wolan
93a9d7732e Merged PR 114: Change build pipeline to only run once on commits
## Summary
Unfortunately, I had to do away with the nice and neat matrix strategy for builds, because they do not support conditionals. Instead, I manually replicated the behaviour of the matrix but added a conditional to run every platform only when the 'build reason' is PR.

## Test process
*How have you tested this (if applicable)?*

## Checklist
- [x] This PR is linked to a **work item**
- [x] I have performed **self-review** of the code
- [ ] I have written **tests** for any new functionality added with this PR
- [ ] I have updated the **documentation** if this PR changes or adds functionality
- [x] I have run **pre-commit** checks for code style

Related work items: #1603
2023-07-11 12:12:32 +00:00
SunilSamra
14d7317b6b 1566 - updated docs for new items in training_config 2023-07-11 12:40:25 +01:00
SunilSamra
5d88003230 1566 - applied pre-commit 2023-07-11 12:37:14 +01:00
Marek Wolan
a01984b0ac Updated migration guide 2023-07-11 12:10:20 +01:00
Marek Wolan
42e8a65227 Added draft migration guide. 2023-07-11 12:01:48 +01:00
SunilSamra
f14963b6fb Merge remote-tracking branch 'origin/dev' into feature/1566-configure_episode-steps-learn-eval
# Conflicts:
#	src/primaite/config/training_config.py
2023-07-11 11:39:21 +01:00
Marek Wolan
4f36ffd909 Improved order of glossary terms 2023-07-11 11:31:29 +01:00
Marek Wolan
35263ee140 Completed glossary 2023-07-11 11:13:28 +01:00
Marek Wolan
520784e357 Merge remote-tracking branch 'origin/dev' into feature/1602-update-docs 2023-07-11 10:12:40 +01:00
Marek Wolan
f1457f36cb Fix typo in Build.Reason 2023-07-11 09:01:43 +00:00
Marek Wolan
36320968f2 Fixed formatting with pre-commit 2023-07-11 09:57:27 +01:00
Marek Wolan
1297d61a7a Added glossary 2023-07-11 09:56:52 +01:00
Marek Wolan
7796ad98f3 Fix syntax 2023-07-11 08:54:22 +00:00
Marek Wolan
186ba09400 Changed structure of build pipeline yaml 2023-07-11 08:53:37 +00:00
Marek Wolan
98414a58f3 Change parameter matrix to list instead of dict 2023-07-11 08:22:30 +00:00
Marek Wolan
3085057406 Capitalisation error in value 2023-07-11 08:15:16 +00:00
Marek Wolan
de630d11de Fix indent 2023-07-11 08:14:34 +00:00
Marek Wolan
ebf07ce5c1 Typo in word only 2023-07-11 08:14:08 +00:00