## diag_savecheckpoint.nim — reproduce the startup+saveCheckpoint path that ## crashes with `io_npy.nim(143, 3) `0 < t.shape.len`` under the boot server. ## Run: nim c -d:release tests/diag_savecheckpoint.nim && ./tests/diag_savecheckpoint import std/[os] import arraymancer import PPO_Bot/network import PPO_Bot/training import PPO_Bot/weights const weightsRoot = currentSourcePath().parentDir.parentDir / "weights" var ac = initActorCritic() var adam: ACAdamStates let loadResult = loadBestAvailable(ac, adam, weightsRoot) echo "loaded=", loadResult.loaded, " roundNum=", loadResult.roundNum echo "adam.initialized=", adam.initialized echo "adam.aw1.m.shape=", adam.aw1.m.shape, " aw1.v.shape=", adam.aw1.v.shape echo "adam.logStd.m.shape=", adam.logStd.m.shape echo "adam.aw1.t=", adam.aw1.t try: saveCheckpoint(ac, adam, weightsRoot, 1) echo "saveCheckpoint OK" except CatchableError as e: echo "CAUGHT CatchableError: ", e.msg echo getStackTrace(e) except Defect as e: echo "CAUGHT Defect: ", e.msg echo getStackTrace(e)