metadata
license: mit
datasets:
- reeeemo/jigsaw_puzzle
pipeline_tag: reinforcement-learning
library_name: stable-baselines3
Reinforcement-Learning model (puzzler-v0) that utilizes MaskablePPO to guide assembly of a jigsaw puzzle (puzzle pieces with irregular, convex boundaries).
Code to train/create this custom environment can be found in the "How Puzzling!" github repo.
Initialization Parameters:
def __init__(self, images, seg_model_path, max_steps=100, device="cpu")
- images: list[np.ndarray]
- List of images that MUST BE SAME SAME, SAME ORIENTATION (3x3, 4x4 puzzles, etc.).
- Each will be randomly initialized every
.reset()of the environment
- seg_model_path: string
- Path to image segmentation weight folder
- Note that any image segmentation that segments puzzle pieces will work, however they must be axis aligned
- The segmentation model is used to initialize another custom model found in the same github repo, here
- max_steps: int
- Max number of steps allowed
- Using MaskablePPO solves the issue of infinite actions, but if you decide to use PPO, ensure
max_stepsis set to the max number of puzzle pieces
- device: string
- CPU or GPU usage
Training data can be found in events.out.tfevents using tensorboard --logdir . after downloading the repo.
The environment was trained with VecNormalize from the stable_baselines3 libary, you can load from vec_normalize.pkl