Update README.md
Browse files
README.md
CHANGED
|
@@ -1,3 +1,28 @@
|
|
| 1 |
-
---
|
| 2 |
-
license: mit
|
| 3 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
---
|
| 2 |
+
license: mit
|
| 3 |
+
datasets:
|
| 4 |
+
- reeeemo/jigsaw_puzzle
|
| 5 |
+
pipeline_tag: reinforcement-learning
|
| 6 |
+
library_name: stable-baselines3
|
| 7 |
+
---
|
| 8 |
+
|
| 9 |
+
Reinforcement-Learning model that utilizes MaskablePPO to guide assembly of a jigsaw puzzle (puzzle pieces with irregular, convex boundaries).
|
| 10 |
+
|
| 11 |
+
Code to train/create this custom environment can be found in the "How Puzzling!" [github repo](https://github.com/reeeeemo/how-puzzling).
|
| 12 |
+
|
| 13 |
+
Initialization Parameters:
|
| 14 |
+
```
|
| 15 |
+
def __init__(self, images, seg_model_path, max_steps=100, device="cpu")
|
| 16 |
+
```
|
| 17 |
+
- *images*: **list[np.ndarray]**
|
| 18 |
+
- List of images that **MUST BE SAME SAME, SAME ORIENTATION (3x3, 4x4 puzzles, etc.)**.
|
| 19 |
+
- Each will be randomly initialized every `.reset()` of the environment
|
| 20 |
+
- *seg_model_path*: **string**
|
| 21 |
+
- Path to [image segmentation weight folder](https://huggingface.co/reeeemo/puzzle-segment-model)
|
| 22 |
+
- Note that any image segmentation that segments puzzle pieces will work, however they must be axis aligned
|
| 23 |
+
- The segmentation model is used to initialize another custom model found in the same github repo, [here](https://github.com/reeeeemo/how-puzzling/blob/main/model/model.py)
|
| 24 |
+
- *max_steps*: **int**
|
| 25 |
+
- Max number of steps allowed
|
| 26 |
+
- Using MaskablePPO solves the issue of infinite actions, but if you decide to use PPO, ensure `max_steps` is set to the max number of puzzle pieces
|
| 27 |
+
- *device*: **string**
|
| 28 |
+
- CPU or GPU usage
|