环境配置:
torch==2.5.1
ray==2.10.0
ray[rllib]==2.10.0
ray[tune]==2.10.0
ray[serve]==2.10.0
numpy==1.23.0
python==3.9.18
直接看代码(建议先执行完 ray.rllib 入门实践-6: 保存模型-优快云博客, 保存了模型后再执行以下代码)
import os
from ray.rllib.algorithms.ppo import PPO,PPOConfig
from ray.rllib.algorithms.algorithm import Algorithm
from ray.tune.logger import pretty_print
################### 加载 checkpoint #####################################
checkpoint_dir = "F:/codes/RLlib_study/ray_rllib_tutorials/outputs/checkpoints"
## (推荐)方法1:用 from_checkpoint 直接加载。
algo = Algorithm.from_checkpoint(checkpoint_dir)
print(f"Loaded checkpoint from {checkpoint_dir}")
## (推荐)方法2: 用 from_checkpoint 直接加载。
# algo = PPO.from_checkpoint(checkpoint_dir)
# print(f"Loaded checkpoint from {checkpoint_dir}")
## (推荐)方法3: 成功
# algo = PPO(env="CartPole-v1")
# algo.from_checkpoint(checkpoint_dir) ## 必须要传入配置项才行,至少要传入对env的配置,否则失败
# print(f"restore checkpoint from {checkpoint_dir}")
## 方法4: 重新构建算法后,用 restore 加载。
# algo = PPO(env="CartPole-v1") ## 必须要传入配置项才行,至少要传入对env的配置
# algo.restore(checkpoint_dir)
# print(f"restore checkpoint from {checkpoint_dir}")
## 方法5: 重新构建算法后,用 restore 加载。等价于方法4,添加了更多设置。
# config = PPOConfig() ## 配置并构建算法
# config = config.environment(env="CartPole-v1",env_config={})
# algo = config.build() ## 构建算法
# algo.restore(checkpoint_dir) ## 加载模型
# print(f"Loaded checkpoint from {checkpoint_dir}")
## 方法6: 重新构建算法后,用 restore 加载。等价于方法4,添加了更多设置。
# storage_path = "F:/codes/RLlib_study/ray_rllib_tutorials/outputs"
# os.makedirs(storage_path,exist_ok=True)
# config = PPOConfig() ## 配置并构建算法
# config = config.rollouts(num_rollout_workers=2)
# config = config.resources(num_gpus=0,num_cpus_per_worker=1,num_gpus_per_worker=0)
# config = config.environment(env="CartPole-v1",env_config={})
# config.output = storage_path ## 设置过程文件的存储路径
# algo = config.build() ## 构建算法
# algo.restore(checkpoint_dir) ## 加载模型
# print(f"Loaded checkpoint from {checkpoint_dir}")
## 方法7:失败。 restore 不能直接这么用
# algo = Algorithm.restore(checkpoint_dir)
# print(f"Loaded checkpoint from {checkpoint_dir}")
## 方法8: 失败
# algo = PPO() ## 必须要传入配置项才行,至少要传入对env的配置
# algo.restore(checkpoint_dir)
# print(f"restore checkpoint from {checkpoint_dir}")
## 方法9: 失败
# algo = PPO()
# algo.from_checkpoint(checkpoint_dir) ## 必须要传入配置项才行,至少要传入对env的配置
# print(f"restore checkpoint from {checkpoint_dir}")
################# 继续训练 #################################
for i in range(2):
result = algo.train()
# print(pretty_print(result))
print(f"Episode_{i}")
418



被折叠的 条评论
为什么被折叠?



