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_steps is 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

Downloads last month
36
Video Preview
loading

Dataset used to train reeeemo/ppo-puzzler

Collection including reeeemo/ppo-puzzler