问题1,在【日】小川雄太郎的《边做边学深度强化学习》一书中,第3.2章中的代码运行时一开始报错:TypeError: render() got an unexpected keyword argument ‘mode‘
问题1的解决:这可能是因为一些库的版本问题,有网友试过将gym和pyglet设置成:
- gym:0.17.1
- pyglet:1.5.0
确实有效,我亲试过
问题2,但是又遇到了新的问题,报错:AttributeError: 'HTMLWriter' object has no attribute '_temp_names'
问题2的解决:有日本网友给出过解决方案,在下面网址中:
JSAnimationのAttributeError:”: 'HTMLWriter' object has no attribute '_temp_names'”を解決したい (teratail.com)
但是这个网址中给出的两种解决方案,它的第一种方案我试了没有用,改完之后还是会有其他的错误出来,我试的第二种有效,下面把第二种解决方法简单描述一下。
- 打开你编写代码的.py文件(就是你写代码的那个文件)
- 找到你的 animate_frames 方法。(如果没有可以不用管,我就是没有,然后直接把第三步的第一个代码块放到最前面就行)
- 在animate_frames 方法之前添加代码(添加的包放到最前面):
import matplotlib.pyplot as plt
from IPython.display import HTML
def display_animation(anim):
plt.close(anim._fig)
return HTML(anim.to_jshtml())
找到下面这句代码:
display(display_animation(anim, default_mode='XXX'))
把它改成:
display(display_animation(anim))
还有下面这句代码可以删除,也可以不用管:
from JSAnimation.IPython_display import display_animation