强化学习使用gym时出现错误:ValueError: too many values to unpack (expected 4)

目录

1.问题描述

2.问题分析

(1)env.step()的返回值问题

(2)ale-py包问题

3.问题解决

4.总结


1.问题描述

        最近在学强化学习,用parl和gym实现Pong游戏的策略梯度-REINFORCE算法,主要的代码参考paddle的parl的教程lesson4课程(具体链接:PARL/examples/tutorials/parl2_dygraph at develop · PaddlePaddle/PARL · GitHub

但在写代码的过程中遇到了一个问题,在其他代码没有任何问题的情况下,运行train.py

env.step()函数会出现:ValueError: too many values to unpack (expected 4)

2.问题分析

        首先排除env.step(action)的传入参数没有问题,那问题只能出现在env.step(action)的执行和返回的过程中(在分析问题的过程中,我参考这个博主的帖子:pytorch报错ValueError: too many values to unpack (expected 4)_阮阮小李的博客-CSDN博客

(1)env.step()的返回值问题

        我通过gym的官网文档(Core - Gym Documentation),查看了env.step()的返回值定义。

        并将train.py代码中的这句话

obs, reward, done,  _ = env.step(act)

        修改为

obs, reward, done, _, _, _ = env.step(act)

        结果是问题没有解决!

(2)ale-py包问题

        因为在这之前,我之前学习的过程中也编写好了其他算法和gym游戏的代码,测试过多次是可以跑通的,在这个错误出现后,我第一时间运行了之前的代码,出现了一模一样的错误,我突然想起来因为在创建Pong游戏环境时,会提示Pong游戏被gym转移到ale-py,所以pip install ale-py安装了ale-py,所以问题就出现在ale-py这个功能包!

env = gym.make('Pong-v4')

3.问题解决

        使用pip list命令检查gym和ale-py的版本,我的ale-py版本是0.8.0(pip中可安装的最新版本是0.8.0),而我的gym是0.22.0(此时pip可安装的最新版本是0.26.2),我意识到是ale-py版本太高的问题,最后把ale-py的版本重装为0.7.2,问题解决,并且提示我obs, reward, done, _, _, _ = env.step(act)这句话有问题,因为只需要4个输入参数,修改之后问题解决!

4.总结

总结来说就是ale-py的版本太高,不适配gym版本。

  • 18
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 15
    评论
回答:在训练过程中出现"ValueError: too many values to unpack (expected 4)"的错误,通常有几个可能的解决方案。首先,根据引用中的错误提示,这个错误是由于在使用`self.env.step(action)`返回了多个值,而期望的是返回4个值。因此,第一个解决方案是检查`env.step()`函数的返回值是否正确,确保返回的值的数量是正确的。另外,根据引用的解释,这个错误也可能出现在执行和返回过程中,所以要确保在执行`env.step(action)`没有其他问题导致返回值的数量不正确。第三个解决方案是检查是否安装了正确的功能包。根据引用的经验,安装了`ale-py`可能会导致这个错误出现,因此需要检查是否使用了正确的功能包。通过检查这些解决方案,应该能够解决"ValueError: too many values to unpack (expected 4)"的错误123 #### 引用[.reference_title] - *1* [gym ValueError: too many values to unpack (expected 4) 解决方案](https://blog.csdn.net/dream6985/article/details/129748611)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}} ] [.reference_item] - *2* *3* [强化学习使用gym出现错误:ValueError: too many values to unpack (expected 4)](https://blog.csdn.net/Er_Studying_Bai/article/details/127441552)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值