关于gym包升级后炼丹炉测试代码的修改
A.测试代码1
由于十月份电脑有些问题重装了一边系统,因此又开始搭环境跑测试代码,果不其然,各种问题出来了。把pycharm、anaconda装好后,rl环境创建好后,并在rl环境中成功安装好gym、pygame、pytorch包以为能成功进入炼丹炉,就拿了之前的测试代码1跑了一下:
然鹅,出错了:
这个错误提示的意思是:
值错误:接收返回值不符(这个问题参考的这个链接)
我理解的意思就是说环境里给我们的接受值和我们设置接受变量的数量之间无法对应起来(比如环境给你5个值,你却只设置了4个或更少的变量去接受,这肯定是不对的)。现在我们来查看env.step(action)到底给了我们几个value。利用下列代码来查看:
运行后可以看到“运行”里打印出了5,也就是说给了5个值需要用五个容器(变量)来接收:
那么可以把原代码:
改为:
这里加了一个变量_,但目前对这个变量接受的值的意义还没深究。
运行效果:
B.测试代码2
跑的另一个测试代码2也是有2个提示。
原测试代码2如下:
结果有print的结果,没出现pygame的界面,按照提示作出修改:
大概意思是说,即使terminated = 1了我依然还在调用step函数,terminated = 1的时候应该接着的是reset函数。我理解的意思是当我们完成一个episode(序列/情节/轨迹)后,环境会告诉我们训练应当终止了就会返回给我们terminated = 1这个信 ,并且希望我们通过reset函数重置智能体的状态,让他继续探寻下一个episode。但是这里有个疑问:这条警告有时出现有时不出现,目前原因不明。比如我加了一句代码:
就没有这样的警告:
附上修改后的测试代码2
文章知识点与官方知识档案匹配,可进一步学习相关知识Python入门技能树首页概览212709 人正在系统学习中
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!