Saving a Model in OPENAI Baselines

server/2025/1/9 8:04:22/
aidu_pl">

题意:在OPENAI Baselines中保存模型

问题背景:

Openai Baselines save the trained model with the following command,

OpenAI Baselines 使用以下命令保存训练好的模型:

python -m baselines.run --alg=ppo2 --env=PongNoFrameskip-v4 --num_timesteps=2e7 --save_path=~/models/pong_20M_ppo2

But the saved trained model is not in the form of,

但是保存的训练模型并不是以下形式:

.ckpt.meta
.ckpt.index
.ckpt.data
checkpoint

which it was in this form in the earlier versions. How can we save the model as .ckpt.meta, .ckpt.index, .ckpt.data and checkpoint format?

在早期版本中模型是以这种形式保存的。我们如何将模型保存为 .ckpt.meta、.ckpt.index、.ckpt.data 和检查点格式?

问题解决:

I've encountered the same problem and I've solved the problem by making a little adjustment to the baselines code.

“我遇到了同样的问题,并通过对 baselines 代码进行一些小调整解决了这个问题。”

There are two pairs of methods in baselines for saving and loading models(the save_state&load_state pair and the save_variables&loas_variables pair) and you can see it in baselines/common/tf_util.py(line325~line372).

baselines 中有两对用于保存和加载模型的方法(save_stateload_state 这一对,以及 save_variablesload_variables 这一对),你可以在 baselines/common/tf_util.py 文件的第 325 行到第 372 行看到这些方法。

For the latest version of baselines, the save_state&load_state pair which saves and loads models in the .ckpt.meta, .ckpt.index, .ckpt.data and checkpoint format has been abandoned, so you need to re-enable the save_state&load_state pair.

在最新版本的 baselines 中,save_stateload_state 这对用于以 .ckpt.meta、.ckpt.index、.ckpt.data 和检查点格式保存和加载模型的方法已被弃用,因此你需要重新启用 save_stateload_state 这对方法。

Take ppo2 for example, in baselines/ppo2/model.py, make the following replacement: in line 125, replace

“以 ppo2 为例,在 `baselines/ppo2/model.py` 文件中,进行以下替换:在第 125 行,将”

self.save = functools.partial(save_variables, sess=sess)
self.load = functools.partial(load_variables, sess=sess)

with  用以下语句替换

self.save = functools.partial(save_state, sess=sess)
self.load = functools.partial(load_state, sess=sess)

and in line 4, replace        将第4行的以下语句

from baselines.common.tf_util import get_session, save_variables, load_variables

with        用以下语句替换

from baselines.common.tf_util import get_session, save_state, load_state

this will replace the save_variables&loas_variables pair with the save_state&load_state pair.

“这将把 `save_variables` 和 `load_variables` 这对方法替换为 `save_state` 和 `load_state` 这对方法。”

hope this would help you.        希望对你有帮助.


http://www.ppmy.cn/server/101255.html

相关文章

力扣题/图论/岛屿数量

岛屿数量 力扣原题 给你一个由 1(陆地)和 0(水)组成的的二维网格,请你计算网格中岛屿的数量。 岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。 此外,你可以…

自己搭建远程桌面服务器-RustDesk 极简版

linux搭建RustDesk保姆间教程_rustdesk linux-CSDN博客https://blog.csdn.net/yzs2022/article/details/135136491 背景 在某公司工作,向日葵等远程办公软件均已屏蔽,无法使用(也没有明文规定不允许使用远程控制软件)&#xff0c…

jave2、ffmpeg 的安装以及实现音频切分功能

jave2、ffmpeg 实现音频切分功能 关于 ffmpeg 的安装mac 下安装 ffmpegdocker 和 linux 下安装 ffmpeg 关于 ffmpeg 使用在命令行使用在 java 代码中使用 关于 javacv、ffmpeg-platform 的使用 背景是需要在 java 项目中实现一个音频切分的功能,比如用户上传了一个1…

设计模式 - 状态模式

目录 1. 前言 2. 基本原理 3. UML模型 4. 例程 1. 前言 状态模式作为设计模式的一种,主要用于根据状态的改变执行不同的动作,它允许一个对象在其内部状态改变时改变它的行为。状态模式主要解决的是当控制一个对象状态转换的条件表达式过于复杂时的情况。把状态的…

在HFSS中对曲线等结构进行分割(Split)

在HFSS中对曲线进行分割 我们往往需要把DXF等其他类型文件导入HFSS进行分析,但是有时需要对某一个曲线单独进行分割成两段修改。 如果是使用HFSS绘制的曲线,我们修改起来非常方便,修改参数即可。但是如果是导入的曲线,则需要使用…

贪心算法介绍(Greedy Algorithm)

贪心算法介绍(Greedy Algorithm) 1. 贪心算法概念简介 ​ 贪心算法Greedy Algorithm是一种在每一步选择中都采取当前状态下最优(或最有利)决策的算法策略,以期望通过这样的局部最优决策达到全局最优解。它适用于那些…

仿RabbitMq实现简易消息队列基础篇(future操作实现异步线程池)

TOC 介绍 std::future 是C11标准库中的一个模板类,他表示一个异步操作的结果,当我们在多线程编程中使用异步任务时,std::future可以帮助我们在需要的时候,获取任务的执行结果,std::future 的一个重要特性是能…

PostgreSQL-03-入门篇-过滤数据

文章目录 1. WHEREWHERE 子句概述WHERE 子句示例1) 使用 WHERE 子句和等于运算符 () 示例2) 使用 WHERE 子句和 AND 运算符示例3) 使用 WHERE 子句和 OR 运算符示例4) 使用 WHERE 子句和 IN 运算符示例5) 使用 WHERE 子句和 LIKE 运算符示例6) 将 WHERE 子句与 BETWEEN 运算符一…